{
 "cells": [
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T15:20:04.538709Z",
     "start_time": "2025-09-16T15:19:51.623314Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from llama_index.tools.tavily_research import TavilyToolSpec\n",
    "import os\n",
    "os.environ[\"TAVILY_API_KEY\"] = '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'\n",
    "tavily_tool = TavilyToolSpec(api_key='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')\n",
    "documents = tavily_tool.search(\"有关langchain的知识点\", max_results=20)"
   ],
   "id": "2b33497ce8357af9",
   "outputs": [],
   "execution_count": 1
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T16:39:55.187190Z",
     "start_time": "2025-09-16T16:39:55.105662Z"
    }
   },
   "cell_type": "code",
   "source": [
    "output_dir = \"../huggface官方文档知识库/extracted_documents\"\n",
    "\n",
    "# 4. 创建目录（如果它不存在的话）\n",
    "os.makedirs(output_dir, exist_ok=True)\n",
    "\n",
    "# 5. 遍历 document 列表，提取内容并写入文件\n",
    "if not documents:\n",
    "    print(\"文档列表为空，没有文件需要创建。\")\n",
    "else:\n",
    "    # 使用 enumerate 来为文件创建一个简单的数字索引\n",
    "    for i, doc in enumerate(documents):\n",
    "        # 从对象中正确提取文本内容\n",
    "        content = doc.text_resource.text\n",
    "\n",
    "        # 使用文档的 id 或者索引来命名文件，这里使用索引更简单通用\n",
    "        # 例如: document_1.txt, document_2.txt ...\n",
    "        filename = f\"document_{i + 1}.txt\"\n",
    "\n",
    "        # 构造完整的文件路径\n",
    "        file_path = os.path.join(output_dir, filename)\n",
    "\n",
    "        try:\n",
    "            # 将提取的内容写入文件，使用 utf-8 编码\n",
    "            with open(file_path, 'w', encoding='utf-8') as f:\n",
    "                f.write(content)\n",
    "\n",
    "            print(f\"成功从 ID '{doc.id_}' 提取内容并保存到: {file_path}\")\n",
    "\n",
    "        except IOError as e:\n",
    "            print(f\"写入文件 {file_path} 时出错: {e}\")\n",
    "\n",
    "    print(f\"\\n处理完成。所有文档内容已成功提取到 '{output_dir}' 目录。\")"
   ],
   "id": "d2b1d13400edaf53",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "成功从 ID '59de3df8-e713-49a3-a5e5-cd1b5088ae77' 提取内容并保存到: extracted_documents\\document_1.txt\n",
      "成功从 ID 'ad9c6d1c-078c-4777-8757-ad51769699dd' 提取内容并保存到: extracted_documents\\document_2.txt\n",
      "成功从 ID '3d02d38a-7918-42f2-962d-85d4ce77b6a6' 提取内容并保存到: extracted_documents\\document_3.txt\n",
      "成功从 ID 'c5876ce2-6397-4786-a8cd-4f81ea3d1173' 提取内容并保存到: extracted_documents\\document_4.txt\n",
      "成功从 ID 'd2ea0c6d-6f19-41b0-b10e-bba8015983b8' 提取内容并保存到: extracted_documents\\document_5.txt\n",
      "成功从 ID 'b3aa8604-308c-42fc-b7de-614d2499599b' 提取内容并保存到: extracted_documents\\document_6.txt\n",
      "成功从 ID '3524c54d-c49c-4084-bda7-b6fd928205d6' 提取内容并保存到: extracted_documents\\document_7.txt\n",
      "成功从 ID 'a3c52e25-47fa-477b-8d74-7a5eeb785ea4' 提取内容并保存到: extracted_documents\\document_8.txt\n",
      "成功从 ID 'f5fa94c0-6986-41b5-9132-93c70b334a29' 提取内容并保存到: extracted_documents\\document_9.txt\n",
      "成功从 ID '4539b39f-feb1-4894-b9dd-0546e374a938' 提取内容并保存到: extracted_documents\\document_10.txt\n",
      "成功从 ID 'c6e52131-dac9-471f-b9b4-1aca6728c563' 提取内容并保存到: extracted_documents\\document_11.txt\n",
      "成功从 ID '2f58d176-bc12-4fc6-9e60-dec6ffabaa23' 提取内容并保存到: extracted_documents\\document_12.txt\n",
      "成功从 ID '4775e40b-7008-4ed2-8ee8-0f5818d17f8e' 提取内容并保存到: extracted_documents\\document_13.txt\n",
      "成功从 ID '28fb0439-bd28-412e-ae4a-ca413af1734e' 提取内容并保存到: extracted_documents\\document_14.txt\n",
      "成功从 ID 'c4664704-47a8-486e-bad5-b59c1e803a98' 提取内容并保存到: extracted_documents\\document_15.txt\n",
      "成功从 ID '70323c53-c711-42ad-9ef4-5886e3999757' 提取内容并保存到: extracted_documents\\document_16.txt\n",
      "\n",
      "处理完成。所有文档内容已成功提取到 'extracted_documents' 目录。\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-09-16T17:00:48.724829Z",
     "start_time": "2025-09-16T17:00:48.713304Z"
    }
   },
   "source": [
    "from llama_index.storage.kvstore.redis import RedisKVStore as RedisCache\n",
    "from llama_index.core.ingestion import IngestionCache\n",
    "\n",
    "ingest_cache = IngestionCache(\n",
    "    cache=RedisCache.from_host_and_port(host=\"127.0.0.1\", port=6379),\n",
    "    collection=\"my_test_cache\",\n",
    ")"
   ],
   "outputs": [],
   "execution_count": 27
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:00:51.184784Z",
     "start_time": "2025-09-16T17:00:51.103265Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from llama_index.storage.docstore.mongodb import MongoDocumentStore\n",
    "from llama_index.vector_stores.postgres import PGVectorStore\n",
    "from llama_index.core import StorageContext, VectorStoreIndex\n",
    "\n",
    "# 初始化 MongoDB 文档存储\n",
    "docstore = MongoDocumentStore.from_uri(uri=\"mongodb://localhost:27017\", db_name=\"llamaindex-2\")\n",
    "vector_store = PGVectorStore.from_params(\n",
    "    database=\"vector_db\",\n",
    "    host=\"localhost\",\n",
    "    password=\"password\",\n",
    "    port=5433,\n",
    "    user=\"postgres\",\n",
    "    table_name=\"llamaindex-2\",\n",
    "    embed_dim=384,\n",
    ")\n",
    "# ingest_cache = IngestionCache(\n",
    "#     cache=RedisCache.from_host_and_port(host=\"127.0.0.1\", port=6379),\n",
    "#     collection=\"my_test_cache\",\n",
    "# )\n"
   ],
   "id": "4ca64c50f48bc",
   "outputs": [],
   "execution_count": 28
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T16:47:11.242568Z",
     "start_time": "2025-09-16T16:47:09.444956Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from llama_index.core.embeddings.utils import resolve_embed_model\n",
    "import nest_asyncio\n",
    "from dashscope import api_key\n",
    "from llama_index.llms.deepseek import DeepSeek\n",
    "import os\n",
    "from llama_index.core import Settings\n",
    "nest_asyncio.apply()\n",
    "os.environ['DEESEEK_API_KEY'] = 'sk-dc55e0ed77c844fdb5c32acbe1f105e6'\n",
    "llm = DeepSeek(model=\"deepseek-chat\",api_key='sk-dc55e0ed77c844fdb5c32acbe1f105e6')\n",
    "embed_model = resolve_embed_model(\"local:D:/pythonProject17/transformers/model_em/BAAI/bge-small-en-v1.5\")\n",
    "Settings.llm=llm\n",
    "Settings.embed_model=embed_model\n"
   ],
   "id": "913ef098dfde7c8c",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2025-09-17 00:47:09,483 - INFO - Load pretrained SentenceTransformer: D:/pythonProject17/transformers/model_em/BAAI/bge-small-en-v1.5\n"
     ]
    }
   ],
   "execution_count": 20
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T16:42:12.236024Z",
     "start_time": "2025-09-16T16:42:08.408224Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from llama_index.core import SimpleDirectoryReader\n",
    "\n",
    "# load documents with deterministic IDs\n",
    "documents = SimpleDirectoryReader(\"../huggface官方文档知识库/extracted_documents\", filename_as_id=True).load_data()"
   ],
   "id": "8a148470ce5dc35d",
   "outputs": [],
   "execution_count": 12
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T16:42:49.895644Z",
     "start_time": "2025-09-16T16:42:49.873960Z"
    }
   },
   "cell_type": "code",
   "source": "len(documents)",
   "id": "1580ebdedd7eb37c",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "16"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": [
    "# This is the new part!\n",
    "#\n",
    "# from llama_index.core.extractors import DocumentContextExtractor\n",
    "#\n",
    "# context_extractor = DocumentContextExtractor(\n",
    "#     # these 2 are mandatory\n",
    "#     docstore=docstore,\n",
    "#     max_context_length=128000,\n",
    "#     # below are optional\n",
    "#     llm=llm,  # default to Settings.llm\n",
    "#     oversized_document_strategy=\"warn\",\n",
    "#     max_output_tokens=100,\n",
    "#     key=\"context\",\n",
    "#     prompt=DocumentContextExtractor.SUCCINCT_CONTEXT_PROMPT,\n",
    "# )"
   ],
   "id": "2d5c11bad4b9ee6b"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:00:59.678630Z",
     "start_time": "2025-09-16T17:00:59.657593Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from llama_index.core.ingestion import IngestionPipeline\n",
    "from llama_index.core.node_parser import SentenceSplitter\n",
    "from llama_index.core.ingestion import DocstoreStrategy\n",
    "from llama_index.core.extractors import TitleExtractor\n",
    "from llama_index.core.extractors import SummaryExtractor\n",
    "\n",
    "pipeline = IngestionPipeline(\n",
    "    transformations=[\n",
    "        SentenceSplitter(chunk_size=512, chunk_overlap=20),\n",
    "        TitleExtractor(),\n",
    "        SummaryExtractor(),\n",
    "        # context_extractor\n",
    "    ],\n",
    "    docstore=docstore,\n",
    "    vector_store=vector_store,\n",
    "    cache=ingest_cache,\n",
    "    # docstore_strategy=DocstoreStrategy.UPSERTS,\n",
    ")"
   ],
   "id": "2a54c2e695de536a",
   "outputs": [],
   "execution_count": 29
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:01:07.111345Z",
     "start_time": "2025-09-16T17:01:07.087347Z"
    }
   },
   "cell_type": "code",
   "source": "documents",
   "id": "90bdc65c00f1ec64",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_1.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_1.txt', 'file_name': 'document_1.txt', 'file_type': 'text/plain', 'file_size': 3372, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='# 什么是 LangChain？\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n## 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源框架，用于构建基于大型语言模型（LLM）的应用程序。LLM 是基于大量数据预先训练的大型深度学习模型，可以生成对用户查询的响应，例如回答问题或根据基于文本的提示创建图像。LangChain 提供各种工具和抽象，以提高模型生成的信息的定制性、准确性和相关性。例如，开发人员可以使用 LangChain 组件来构建新的提示链或自定义现有模板。LangChain 还包括一些组件，可让 LLM 无需重新训练即可访问新的数据集。\\r\\n\\r\\n阅读有关大型语言模型（LLM）的信息\\r\\n\\r\\n## 为什么 LangChain 很重要？\\r\\n\\r\\nLLM 擅长在常规上下文下对提示做出响应，但在未接受过训练的特定领域却很吃力。提示是人们寻求 LLM 回复时所用的查询。例如，LLM 可以通过提供估算值来回答计算机成本问题。但是，它无法列出贵公司销售的特定计算机型号的价格。 [...] LangChain 通过对数据来源集成和提示细化的复杂性进行抽象，来简化人工智能（AI）的开发。开发人员可以自定义序列，以快速构建复杂的应用程序。软件团队无需编程业务逻辑，即可修改 LangChain 提供的模板和库，从而缩短开发时间。\\r\\n\\r\\n### 开发人员支持\\r\\n\\r\\nLangChain 为人工智能开发人员提供将语言模型与外部数据来源相连接的工具。LangChain 是开源的，由活跃社区提供支持。组织可以免费使用 LangChain，并获得其他精通该框架的开发人员提供的支持。\\r\\n\\r\\n## LangChain 如何运作？\\r\\n\\r\\n借助 LangChain，开发人员可以通过指定产生预期结果所需的步骤，灵活调整语言模型以适应特定的业务环境。\\r\\n\\r\\n### 链\\r\\n\\r\\n链是在 LangChain 中容纳各种人工智能组件以提供上下文感知响应的基本原则。链是从用户查询到模型输出的一系列自动化操作。例如，开发人员可以将链用于：\\r\\n\\r\\n### 链接\\r\\n\\r\\n链由链接组成。开发人员串联在一起形成链式序列的每个操作都称为链接。通过链接，开发人员可以将复杂的任务分成多个较小的任务。链接示例包括： [...] 为此，机器学习工程师必须将 LLM 与组织内部数据来源整合，并应用提示工程，即数据科学家根据特定的结构和上下文对生成模型的输入进行细化的实践。\\r\\n\\r\\nLangChain 简化了开发此类数据响应式应用程序的中间步骤，提高了提示工程的效率。它旨在更轻松地开发由语言模型提供支持的各种应用程序，包括聊天机器人、问答、内容生成、摘要器等。\\r\\n\\r\\n以下部分介绍了 LangChain 的好处。\\r\\n\\r\\n### 重新利用语言模型\\r\\n\\r\\n借助 LangChain，组织可以重新将 LLM 用于特定领域的应用程序，而无需重新训练或微调。开发团队可以构建引用专有信息的复杂应用程序，以增强模型响应。例如，您可以使用 LangChain 来构建应用程序，从存储的内部文档中读取数据并将其汇总为对话式响应。您可以创建检索增强生成（RAG）工作流程，在提示时向语言模型引入新信息。实施 RAG 等上下文感知工作流程可减少模型幻觉并提高响应精度。\\r\\n\\r\\n### 简化人工智能开发', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_10.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_10.txt', 'file_name': 'document_10.txt', 'file_type': 'text/plain', 'file_size': 3207, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='LangChain是一个开源的Python库，它提供了构建基于大模型的AI应用所需的模块和工具。它可以帮助开发者轻松地与大型语言模型(LLM)集成，实现文本生成、问答、翻译、对话等任务。LangChain的出现大大降低了AI应用开发的门槛，使得任何人都可以基于LLM构建自己的创意应用。\\r\\n\\r\\n##### 如何理解？\\r\\n\\r\\nLangChain作为一个桥梁，将复杂的语言模型（如GPT）与具体的应用场景连接起来。它通过提供高级抽象和简化的API，让开发者无需深入了解模型的内部机制即可使用这些模型。如GPT系列，这就像是驾驶一辆汽车，您无需了解发动机的工作原理，只需知道如何操作方向盘和踏板。\\r\\n\\r\\n###### 特性\\r\\n\\r\\n在这里插入图片描述\\r\\n\\r\\n##### 主要模块的作用及工作方式\\r\\n\\r\\nLangChain是一个复杂且灵活的框架，旨在简化大型语言模型（如GPT）的集成和使用。它由多个模块组成，每个模块负责特定的功能，共同协作以提供强大的自然语言处理能力。以下是LangChain的一些主要模块以及它们的作用和工作方式：\\r\\n\\r\\n##### 业务人员如何理解其结构和工作原理 [...] ##### LangChain的功能和目的：\\r\\n\\r\\nLangChain的功能和目的主要集中在提供一个框架和工具集，以便更轻松、高效地利用大型语言模型（如GPT）来构建应用程序。以下是LangChain的主要功能、目的，以及它与GPT之间的联系：\\r\\n\\r\\n##### LangChain与GPT的联系：\\r\\n\\r\\n##### demo实现步骤\\r\\n\\r\\n结果  \\r\\n 通过以上步骤，我们将成功创建一个能够提供天气信息的聊天机器人。用户可以查询特定地点的天气情况，而机器人将利用集成的天气API提供最新的天气数据，并通过语言模型以自然的方式回应用户。\\r\\n\\r\\n相关文章：  \\r\\n 2023年大语言模型神器 - LangChain  \\r\\n （万字长文）手把手教你认识学会LangChain  \\r\\n 由ChatGPT反思大语言模型（LLM）的技术精要\\r\\n\\r\\n立减 ¥\\r\\n\\r\\n博客等级\\r\\n\\r\\n### 热门文章\\r\\n\\r\\n### 分类专栏\\r\\n\\r\\n### 最新评论\\r\\n\\r\\nCSDN-Ada助手: \\r\\n不知道 算法 技能树是否可以帮到你：\\r\\n\\r\\nweixin\\\\_44782763: \\r\\n谢谢!\\r\\n\\r\\nibuki++: \\r\\n\\r\\n明道云，感兴趣可以了解一下 [...] # LangChain简明指南，LangChain是什么？可以用来做什么？\\r\\n\\r\\n##### 背景\\r\\n\\r\\n自从2020年OpenAI发布GPT-3之后，大型语言模型（LLM）就在世界上广受欢迎，一直保持稳定的增长。直到2022年底，对于LLM和生成AI等广泛领域的兴趣才开始迅速增长，这可能是因为大量关于GPT-3的重大进展推动了这一趋势。Google发布了名为LaMDA的具有“有感知能力”的聊天机器人，首个高性能且开源的LLM——BLOOM也已经发布。  \\r\\n 此外，OpenAI还发布了他们的下一代文本嵌入模型和下一代“GPT-3.5”模型。在LLM领域取得巨大飞跃后，OpenAI推出了名为ChatGPT的新模型，使LLM成为人们关注的焦点。同时，Harrison Chase创造的LangChain也应运而生，这个库的创建者只花费了几个月的时间就构建出了令人惊叹的功能，尽管它还处于早期阶段。\\r\\n\\r\\n##### 简介', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_11.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_11.txt', 'file_name': 'document_11.txt', 'file_type': 'text/plain', 'file_size': 2969, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='上面我們介紹 LangChain 主要功能在於整合 LLMs 、資料庫和程式應用，使得我們可以更加簡單地使用 LLMs。除此之外， LangChain 還有哪些特點讓它如此重要呢？以下就來談談 LangChain 的 4 大優勢：\\r\\n\\r\\n1. 高度靈活性\\r\\n\\r\\nLangChain 支援 Python、JavaScript 這兩種主要程式語言。由於兩者的語法和編寫方式不同，所以在兩種語言之間切換時需要修改程式碼。不過 LangChain 的設計使其在各個語言版本中提供相似的介面和功能，讓你可以在不同的語言環境下，用相似的操作邏輯來完成，這為開發者在不同語言間切換時提供了一定的靈活性。\\r\\n\\r\\n2. 簡化使用流程\\r\\n\\r\\nLangChain 提供相當豐富的應用程式介面（API），裡面包含多種常使用到的元件，這讓使用者可以直接根據情況自由運用，不需要一一深入了解模型內容、從頭開始撰寫程式碼，簡化了使用流程。\\r\\n\\r\\n3. 方便擴充\\r\\n\\r\\nLangChain 可以配置和擴充外部的資源和工具，如資料數據庫。因此當使用者需要更詳細的資料時，便能方便使用。同時也能運用外部的工具和資源，進行更複雜的數據運算。 [...] |  | Developer | Plus | Enterprise |\\r\\n ---  --- |\\r\\n| 使用者人數 | 1人 | 最多10人 | 根據客製 |\\r\\n| 追蹤功能 | 有 | 有 | 有 |\\r\\n| 監測功能 | 有 | 有 | 有 |\\r\\n| 信箱支援 | 無 | 有 | 有 |\\r\\n| Slack 頻道支援 | 無 | 無 | 有 |\\r\\n| 數據隱私管理 | 無 | 無 | 有 |\\r\\n\\r\\n## LangChain 框架介紹｜功能及元件完整解析\\r\\n\\r\\n### （一）LangChain 架構包含什麼？\\r\\n\\r\\n LangChain-core\\r\\n\\r\\nLangChain-core 是 LangChain 的核心部分，包含可使用的基礎元件，和 LangChain 表達式語言（LangChain Expression Language），用於連結和組成 LangChain 的不同功能。\\r\\n\\r\\n LangChain-community [...] LangChain 是一種幫助應用程式構築的框架，特別是「大型語言模型」 LLM。LLM 是一種人工智慧模型，通過大量的文本資料訓練，即可生成文字、翻譯以及回答問題。而 LangChain 整合了 LLMs（多種 LLM）、資料庫與應用介面，使我們能夠更直觀地操作。\\r\\n\\r\\n根據 LangChain 中文官網\\r\\n的資訊，其包含 Chains（鏈）以及一些功能元件，這些是可以直接使用的程式碼，讓我們能根據實際需求自由組合。\\r\\n\\r\\n簡單來說，可以將 LangChain 形容成一個積木箱，裡面提供了許多現成的積木，讓我們可以依據情況取用並組裝，因此建構時就不需要從零開始寫所有的程式碼。\\r\\n\\r\\n因為 AI 的發展變化迅速，若是每次改變方式都要從頭寫程式碼，會浪費太多時間在基礎的變動上。如果藉由 LangChain 整合、串聯 LLMs 與程式應用 ，就能簡化編寫 AI 的過程，讓使用者更專注在系統的設計，也能提高效率！\\r\\n\\r\\n### （二）LangChain 為什麼重要？4 大優勢一次解析！', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_12.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_12.txt', 'file_name': 'document_12.txt', 'file_type': 'text/plain', 'file_size': 3141, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='### 为什么选择 LangChain？\\r\\n\\r\\nLangChain 易于上手，并在您扩展时为您提供选择、灵活性和力量。\\r\\n\\r\\n3000+ 贡献者\\r\\n\\r\\n任何以 LLM 为中心的开发者框架中最大的社区。\\r\\n\\r\\n600+ 集成\\r\\n\\r\\n提供最大的可插拔集成库。\\r\\n\\r\\n从 0 到 100\\r\\n\\r\\n简单易上手，但功能强大，足以用于生产。LCEL 和 LangServe 为您提供控制权和快速部署路径。\\r\\n\\r\\n## 我们的方法\\r\\n\\r\\n检索代理评估\\r\\n\\r\\n## LangChain 常见问题解答\\r\\n\\r\\n如果我只使用一个模型或向量数据库提供商，LangChain 还有用吗？\\r\\n\\r\\n是的 - 即使您只使用一个提供商，LangChain 也很有价值。它的 LangChain 表达式语言标准化了并行化、回退和异步等方法，以实现更持久的执行。我们还通过 LangSmith 提供开箱即用的可观测性，使进入生产的过程更加顺畅。\\r\\n\\r\\nLangChain 是开源的吗？\\r\\n\\r\\n是的 - LangChain 是一个 MIT 许可的开源库，可以免费使用。\\r\\n\\r\\n人们使用 LangChain 最常见的方式是什么？ [...] # 构建 LLM 应用未来的最大社区\\r\\n\\r\\nLangChain 灵活的抽象和 AI 优先的工具包使其成为开发者构建 GenAI 应用的首选。  \\r\\n加入 100 万+ 构建者，将他们的 LLM 应用开发标准化  \\r\\n在 LangChain 的 Python 和 JavaScript 框架中。\\r\\n\\r\\n开始使用 Python开始使用 JavaScript\\r\\n\\r\\n## 一套完整的可互操作的构建模块\\r\\n\\r\\n使用广泛的组件库构建端到端应用程序。想要更换模型？通过将供应商可选性纳入您的 LLM 基础设施设计，使您的应用程序面向未来。\\r\\n\\r\\n阅读文档\\r\\n\\r\\n## 利用您的数据增强 LLM 的能力\\r\\n\\r\\nLangChain 将 LLM 连接到您公司的私有数据和 API，以构建上下文感知、推理应用程序。使用流行的 RAG 或简单链等方法，快速从原型转向生产。\\r\\n\\r\\n构建 RAG 应用\\r\\n\\r\\n## 与任何数据或知识来源的智能连接\\r\\n\\r\\n查看我们所有的集成\\r\\n\\r\\n## 需要开箱即用的可观测性？\\r\\n\\r\\nLangSmith 让应用程序的行为和性能一目了然。获得提示级别的可见性，并结合工具与您的团队一起调试、测试、评估、部署和监控您的应用程序。\\r\\n\\r\\n获取演示免费注册 [...] LangChain 通常用于将一系列 LLM 调用链接在一起或用于检索增强生成。如果您想构建代理，我们建议您试用 LangGraph。\\r\\n\\r\\n我可以在生产环境中使用 LangChain 吗？\\r\\n\\r\\n是的，LangChain 0.1 及更高版本已准备好用于生产环境。我们简化了软件包，减少了依赖项，从而更好地与您的其余代码库兼容。我们还承诺在 0.1 之后的任何 LangChain 小版本上都不会有破坏性更改，因此您可以在任何小版本上升级您的补丁版本（例如，0.2.x），而不会产生影响。\\r\\n\\r\\nLangChain 适合企业使用吗？\\r\\n\\r\\n是的，LangChain 被财富 2000 强公司广泛使用。许多企业使用 LangChain 来使其技术栈面向未来，从而可以轻松集成额外的模型提供商，以满足他们不断变化的需求。访问我们的网站，了解公司如何使用 LangChain。\\r\\n\\r\\nLangChain 与 LangGraph 有什么不同？', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_13.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_13.txt', 'file_name': 'document_13.txt', 'file_type': 'text/plain', 'file_size': 1748, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='\\\\\\\\目录\\\\\\\\\\r\\n一、概念介绍\\r\\nLangchain 是什么？\\r\\n如何使用 LangChain？\\r\\n主要包含组件：\\r\\n二、核心模块介绍\\r\\nModel I/O\\r\\nLLMs\\r\\nChat\\r\\nPrompts\\r\\nPromptTemplate 提示模板\\r\\nFewShotPromptTemplate 选择器\\r\\nChatPromptTemplate 聊天提示模版\\r\\nStructuredOutputParser 输出解析器\\r\\nData connection\\r\\nDocument loaders 文档加载器\\r\\nDocument transformers 文档转换器\\r\\nText embedding models 文本嵌入\\r\\nVectorStores 向量存储\\r\\nRetrievers 查询\\r\\nCaching Embeddings 缓存嵌入\\r\\nMemory\\r\\nChains\\r\\nAgents\\r\\nCallbacks\\r\\n三、Langchain + LLM 结合使用场景\\r\\n四、结论\\r\\n五、参考文献\\r\\n\\\\ \\\\ \\\\\\r\\n llm(\"Please introduce yourself\") llm.get\\\\_num\\\\_tokens(question)`\\r\\n##### Chat [...] LangChain 提供了一个回调系统，允许您连接到 LLM 申请的各个阶段。这对于日志记录、监控、流传输和其他任务非常有用。\\r\\n可以使用整个 API 中可用的参数来订阅这些事件。该参数是处理程序对象的列表，这些对象预计将实现下面更详细描述的一个或多个方法。\\r\\n\\\\ \\\\ \\\\\\r\\n[]( + LLM 结合使用场景 [...] ##### Retrievers 查询\\r\\n检索器是一个接口，它根据非结构化查询返回文档。它比矢量存储更通用。检索器不需要能够存储文档，只需返回（或检索）它。矢量存储可以用作检索器的骨干，但也有其他类型的检索器。\\r\\n检索器接口是一种通用接口，使文档和语言模型易于组合。LangChain 中公开了一个 get\\\\_relevant\\\\_documents 方法，该方法接受查询（字符串）并返回文档列表。\\r\\n重点关注数据压缩，目的是获得相关性最高的文本带入 prompt 上下文，这样既可以减少 token 消耗，也可以保证 LLM 的输出质量。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_14.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_14.txt', 'file_name': 'document_14.txt', 'file_type': 'text/plain', 'file_size': 2812, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='我们可以简单的理解为他可以动态的帮我们选择和调用chain或者已有的工具。\\r\\n\\r\\n执行过程可以参考下面这张图:\\r\\n\\r\\n### Embedding\\r\\n\\r\\n用于衡量文本的相关性。这个也是 OpenAI API 能实现构建自己知识库的关键所在。\\r\\n\\r\\n他相比 fine-tuning 最大的优势就是，不用进行训练，并且可以实时添加新的内容，而不用加一次新的内容就训练一次，并且各方面成本要比 fine-tuning 低很多。\\r\\n\\r\\n> 具体比较和选择可以参考这个视频：\\r\\n\\r\\n## 实战\\r\\n\\r\\n通过上面的必备概念大家应该已经可以对 LangChain 有了一定的了解，但是可能还有有些懵。\\r\\n\\r\\n这都是小问题，我相信看完后面的实战，你们就会彻底的理解上面的内容，并且能感受到这个库的真正强大之处。\\r\\n\\r\\n因为我们 OpenAI API 进阶，所以我们后面的范例使用的 LLM 都是以Open AI 为例，后面大家可以根据自己任务的需要换成自己需要的 LLM 模型即可。\\r\\n\\r\\n当然，在这篇文章的末尾，全部的全部代码都会被保存为一个 colab 的 ipynb 文件提供给大家来学习。 [...] > 如果想把 OPENAI API 的请求根路由修改成自己的代理地址，可以通过设置环境变量 “OPENAI\\\\_API\\\\_BASE” 来进行修改。\\r\\n>\\r\\n> 相关参考代码：\\r\\n>\\r\\n> 或在初始化OpenAI相关模型对象时，传入“openai\\\\_api\\\\_base” 变量。\\r\\n>\\r\\n> 相关参考代码：\\r\\n\\r\\n## 介绍\\r\\n\\r\\n众所周知 OpenAI 的 API 无法联网的，所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以，我们来介绍一个非常强大的第三方开源库：`LangChain` 。\\r\\n\\r\\n> 文档地址：\\r\\n\\r\\n这个库目前非常活跃，每天都在迭代，已经有 22k 的 star，更新速度飞快。\\r\\n\\r\\nLangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力：\\r\\n\\r\\n1. 可以将 LLM 模型与外部数据源进行连接\\r\\n2. 允许与 LLM 模型进行交互\\r\\n\\r\\n> LLM 模型：Large Language Model，大型语言模型\\r\\n\\r\\n## 基础功能\\r\\n\\r\\nLLM 调用 [...] 这是他发送给 QQ 邮箱的邮件。\\r\\n\\r\\n这只是个小例子，因为 `zapier` 有数以千计的应用，所以我们可以轻松结合 openai api 搭建自己的工作流。\\r\\n\\r\\n## 小例子们\\r\\n\\r\\n一些比较大的知识点都已经讲完了，后面的内容都是一些比较有趣的小例子，当作拓展延伸。\\r\\n\\r\\n### 执行多个chain\\r\\n\\r\\n因为他是链式的，所以他也可以按顺序依次去执行多个 chain\\r\\n\\r\\n```\\r\\nfrom langchain.llms import OpenAI\\r\\nfrom langchain.chains import LLMChain\\r\\nfrom langchain.prompts import PromptTemplate\\r\\nfrom langchain.chains import SimpleSequentialChain', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_15.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_15.txt', 'file_name': 'document_15.txt', 'file_type': 'text/plain', 'file_size': 3072, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='現在，大型語言模型之所以受到矚目，得益於其強大的生成和理解能力，使得LLM在處理複雜的語言任務方面表現卓越。就以OpenAI GPT-4 這樣的模型來說，它能夠生成酷似於人類寫作的文章，甚至能夠模擬名人的風格創作詩歌和編寫劇本。這些模型的創新不僅推動了技術的進步，也改變了我們與技術互動的方式。\\r\\n\\r\\n大型語言模型的應用範圍非常廣泛，從虛擬助理到AI聊天機器人，再到AI搜索引擎和文本內容編輯器。這些應用在各行各業中發揮著重要作用，大大地提升了自動化和AI化的水準，實具有革命性意義，成為現代科技不可或缺的一部分。\\r\\n\\r\\n## LangChain框架概述\\r\\n\\r\\nLangChain是一個用來開發應用程式的框架，這個框架它是專門為開發基於大型語言模型（LLM）的應用而設計的。它的核心理念就是讓開發者能夠輕鬆地建立和架構LLM大型語言模型的各種應用程式，用來實現各種自然語言處理的任務。\\r\\n\\r\\nLangChain由Harrison Chase等人共同開發。自2024年1月發布了第一個穩定版本以來，因其靈活的特性和強大的功能，迅速獲得了大眾廣泛的關注。 [...] 他們設計LangChain的目標，主要包括了提供簡單且容易操作的工具，幫助開發者可以輕鬆的在不同的語言模型之間切換，並能夠輕鬆地整合其他外部的資源。這使得開發者不需要特別為某個特定語言模型撰寫多種版本的程式碼，大大提高了應用程式的開發效率。\\r\\n\\r\\n以目前來說，LangChain不僅支援Python、同時也支援JavaScript這兩種主要的程式語言，為開發者提供了各種豐富的元件和工具，以便快速建構功能強大的應用服務。\\r\\n\\r\\n--\\r\\n\\r\\n--\\r\\n\\r\\n1\\r\\n\\r\\n玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation\\r\\n玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation\\r\\n\\r\\n## Published in 玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation [...] # LangChain框架揭秘： 從零開始了解開發LLM模型應用\\r\\n\\r\\nSean Yeh\\r\\n\\r\\n--\\r\\n\\r\\n1\\r\\n\\r\\nShare\\r\\n\\r\\n大型語言模型（LLM）的橫空出現在NLP自然語言處理領域掀起了革命。它們能夠理解和生成高品質的文本，應用於問答、翻譯等多種任務。LangChain框架則是專為開發LLM應用而設計，提供了靈活且高效的解決方案。本文將帶你深入了解如何利用LangChain從零開始開發強大的LLM應用。\\r\\n\\r\\n## 什麼是大型語言模型（LLM）？\\r\\n\\r\\n大型語言模型（Large Language Model，簡稱LLM）是一種機器學習模型，利用大量的數據與資料進行訓練，它可以夠理解並且生成自然語言。LLM的核心是類神經網絡，這種架構適合處理序列型的數據資料，如文本內容。透過學習詞彙與短句之間的關係，LLM可以執行多種語言任務，例如回答問題、生成文本內容、翻譯語言以及對文本內容進行摘要。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_16.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_16.txt', 'file_name': 'document_16.txt', 'file_type': 'text/plain', 'file_size': 2682, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='初始化智能体时，我设置了智能体的类型为ZERO_SHOT_REACT_DESCRIPTION。这是一种配置方式，特别是指智能体只会根据工具的描述来选择工具的方法。\\r\\n\\r\\nReAct方法是一种利用大型语言模型来解决各种语言推理和决策任务的方法。这个方法是在2022年10月由Shunyu Yao等人提出的，他们在论文“ReAct：在语言模型中协同推理和动作”中介绍了这个方法。\\r\\n\\r\\nReAct方法会 prompt 语言模型以交错的方式生成口头推理轨迹和文本动作，这样可以让两者之间产生更好的协同效应。推理轨迹可以帮助模型规划、跟踪和更新它的动作，以及处理异常情况。而文本动作则允许模型与外部资源，如知识库或环境进行交互，以获取更多的信息。\\r\\n\\r\\n除了已经提到的功能，LangChain 还支持以下几种智能代理： [...] LangChain 的这些智能代理是让大规模语言模型（LLM）与外界互动的关键。它们不仅能够使用 LLM 来检索和生成信息，还能够将 LLM 作为推理工具来规划一系列最优动作。这些组件和代理是 LLM 驱动应用的核心，我们将在接下来的章节中进一步探讨。\\r\\n\\r\\n之后，我们将介绍开源 LLM 的世界，特别是 Hugging Face Hub 与 LangChain 的集成\\r\\n\\r\\n关注LLM专栏\\r\\n\\r\\n专栏“[构建LLM应用程序”，将重点讨论将LLM嵌入应用程序，LangChain的具体使用等内容。未来请持续关注。 [...] 代码创建了对话摘要内存实例，并用 GooglePalm 语言模型（设定了0的温度以产生确定性输出）来生成交互摘要。然后，它保存了对话的上下文，并加载了内存变量。\\r\\n\\r\\n内存通过我们初始化的Google LLM总结了对话。在你的应用程序中定义使用哪种内存没有固定的公式，然而有些场景可能特别适合特定的内存。例如，知识图谱内存对于需要从大量多样化的数据集中访问信息并基于语义关系生成响应的应用程序非常有用，而对话摘要缓冲内存可能适合于创建能够在多轮中保持连贯和一致的上下文的对话代理，同时还能压缩和总结之前的对话历史。\\r\\n\\r\\n链\\r\\n-\\r\\n\\r\\n> Chains\\r\\n\\r\\n官方文档： cs/modules/chains\\r\\n\\r\\n锁链是一系列预先确定的动作和大型语言模型（LLM）的调用，它们简化了需要将LLM与其他LLM或其他组件结合使用的复杂应用程序的构建。LangChain提供了四种主要的锁链类型来开始使用：\\r\\n\\r\\n### LLMChain\\r\\n\\r\\nLLMChain是最常见的锁链类型。它包括一个提示模板（PromptTemplate）、一个LLM和一个可选的输出解析器（OutputParser）。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_2.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_2.txt', 'file_name': 'document_2.txt', 'file_type': 'text/plain', 'file_size': 2925, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='Skip to main content\\r\\n\\r\\n# LangChain 介绍\\r\\n\\r\\nLangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够：\\r\\n\\r\\n 具有上下文感知能力：将语言模型连接到上下文来源（提示指令，少量的示例，需要回应的内容等）\\r\\n 具有推理能力：依赖语言模型进行推理（根据提供的上下文如何回答，采取什么行动等）\\r\\n\\r\\n这个框架由几个部分组成。\\r\\n\\r\\n LangChain 库：Python 和 JavaScript 库。包含了各种组件的接口和集成，一个基本的运行时，用于将这些组件组合成链和代理，以及现成的链和代理的实现。\\r\\n LangChain 模板：一系列易于部署的参考架构，用于各种任务。\\r\\n LangServe：一个用于将 LangChain 链部署为 REST API 的库。\\r\\n LangSmith：一个开发者平台，让你可以调试、测试、评估和监控基于任何 LLM 框架构建的链，并且与 LangChain 无缝集成。\\r\\n\\r\\n这些产品一起简化了整个应用程序的生命周期： [...] 我们建议你按照我们的 快速入门 指南，通过构建你的第一个 LangChain 应用程序来熟悉框架。\\r\\n\\r\\n阅读我们的 安全 最佳实践，确保你在安全地使用 LangChain 进行开发。\\r\\n\\r\\nnote\\r\\n\\r\\n这些文档主要关注 Python LangChain 库。点击这里 查看 JavaScript LangChain 库的文档。\\r\\n\\r\\n## LangChain 表达式语言 (LCEL)\\u200b\")\\r\\n\\r\\nLCEL 是一种声明性的组合链的方式。LCEL 从第一天开始就被设计为支持将原型投入生产，无需更改代码，从最简单的“提示 + LLM”链到最复杂的链。\\r\\n\\r\\n 概述：LCEL 及其优点\\r\\n 接口：LCEL 对象的标准接口\\r\\n 如何：LCEL 的关键特性\\r\\n 烹饪书：完成常见任务的示例代码\\r\\n\\r\\n## 模块\\u200b\\r\\n\\r\\nLangChain 为以下模块提供了标准的、可扩展的接口和集成：\\r\\n\\r\\n#### 模型 I/O\\u200b\\r\\n\\r\\n与语言模型的接口\\r\\n\\r\\n#### 检索\\u200b\\r\\n\\r\\n与特定应用数据的接口\\r\\n\\r\\n#### 代理\\u200b\\r\\n\\r\\n让模型根据高级指令选择使用哪些工具\\r\\n\\r\\n## 示例、生态系统和资源\\u200b\\r\\n\\r\\n### 用例\\u200b\\r\\n\\r\\n常见的端到端用例的演练和技术，如： [...] 文档问题回答\\r\\n 聊天机器人\\r\\n 分析结构化数据\\r\\n 还有更多...\\r\\n\\r\\n### 集成\\u200b\\r\\n\\r\\nLangChain 是一个丰富的工具生态系统的一部分，这些工具与我们的框架集成，并在其基础上构建。查看我们不断增长的 集成 列表。\\r\\n\\r\\n### 指南\\u200b\\r\\n\\r\\n使用 LangChain 的最佳实践。\\r\\n\\r\\n### API 参考\\u200b\\r\\n\\r\\n前往参考部分，查看 LangChain 和 LangChain Experimental Python 包中所有类和方法的完整文档。\\r\\n\\r\\n### 开发者指南\\u200b\\r\\n\\r\\n查看开发者指南，获取有关贡献的指南和帮助设置你的开发环境的帮助。\\r\\n\\r\\n LangChain 库\\r\\n 开始使用\\r\\n LangChain 表达式语言 (LCEL)\\r\\n 模块\\r\\n 示例、生态系统和资源\\r\\n  + 用例\\r\\n  + 集成\\r\\n  + 指南\\r\\n  + API 参考\\r\\n  + 开发者指南', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_3.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_3.txt', 'file_name': 'document_3.txt', 'file_type': 'text/plain', 'file_size': 3352, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='聊天机器人：聊天机器人是大语言模型最直观的用途之一。LangChain 可用于为聊天机器人的特定使用提供适当的上下文，并通过 LangChain 提供的工具将聊天机器人集成到现有的通信渠道和工作流程中。\\r\\n 总结：LangChain 能高效支持语言模型执行文本总结任务，帮助大语言模型分解复杂的学术文章、成绩单，甚至提供电子邮件摘要。借助 LangChain 的抽象方法，开发者可以轻松实现这些功能，并将其集成到各种应用程序中。\\r\\n 问题解答：通过实用特定文档或专业知识库（如 Wolfram、arXiv 或 PubMed），大语言模型可以从存储中检索相关信息，并提供精准的答案。如果经过微调或适当提示，部分大语言模型 无需外部信息也可以回答许多问题。\\r\\n 数据增强：大语言模型可用于生成用于机器学习的合成数据。例如，大语言模型经过训练，可用于生成与训练数据集中的数据点非常相似的额外数据样本。\\r\\n 虚拟代理：LangChain 的代理模块与正确的工作流程集成，可以使用大语言模型自主确定后续步骤，并使用机器人流程自动化 (RPA) 采取行动。\\r\\n\\r\\n电子书\\r\\n\\r\\n如何选择合适的 AI 基础模型 [...] 我的 IBM\\r\\n\\r\\n登录\\r\\n\\r\\n订阅\\r\\n\\r\\n# 什么是 LangChain？\\r\\n\\r\\n## 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源编排框架，用于使用大语言模型 (LLM) 开发应用程序。LangChain 的工具和 API 用于基于 Python 和 Javascript 的库，可以简化构建聊天机器人和虚拟代理等大语言模型驱动型应用程序的过程。\\r\\n\\r\\nLangChain 几乎可以作为所有大语言模型的通用接口，为构建大语言模型应用程序并将其与外部数据源和软件工作流程集成提供集中式开发环境。LangChain 基于模块的方法可支持开发人员和数据科学家动态比较不同的提示，甚至比较不同的基础模型，而无需重写代码。这种模块化环境还可支持程序使用多个大语言模型：例如，应用程序使用一个大语言模型解释用户查询，并使用另一个 大语言模型编写响应。 [...] 尽管大语言模型拥有强大的功能和广泛的用途，但它们也存在严重的局限性：即缺乏最新信息、缺乏特定领域的专业知识以及数学方面的普遍难点。\\r\\n\\r\\nLangChain 工具是一组功能，可支持 LangChain 代理与现实世界的信息进行交互，以扩展或改进可以提供的服务。著名的 LangChain 工具示例包括：\\r\\n\\r\\n Wolfram Alpha：提供强大的计算和数据可视化功能，实现复杂的数学功能。\\r\\n Google 搜索：提供 Google 搜索访问权限，为应用程序和代理提供实时信息。\\r\\n OpenWeatherMap：获取天气信息。\\r\\n 维基百科：支持对维基百科文章信息进行高效访问。\\r\\n\\r\\nAI 学院\\r\\n\\r\\n### 为什么说基础模型是 AI 的范式转变\\r\\n\\r\\n了解灵活、可重复使用的一类全新 AI 模型，这些模型可以带来新收入、降低成本并提高工作效率。还可以参阅我们的指南手册，深入了解这些模型。\\r\\n\\r\\n转到视频集\\r\\n\\r\\n## LangSmith\\r\\n\\r\\nLangSmith 于 2023 年秋季发布，旨在弥合让 LangChain 脱颖而出的原型设计功能与构建生产质量大语言模型应用程序之间的差距。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_4.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_4.txt', 'file_name': 'document_4.txt', 'file_type': 'text/plain', 'file_size': 3600, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='# 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源编排框架，可简化使用大语言模型 (LLM) 构建应用的过程。它提供用于将 LLM 连接到各种数据源的各种工具和组件，从而创建复杂的多步工作流。\\r\\n\\r\\nLangChain 以 Python 和 JavaScript 库的形式提供，可通过将 LLM 连接到外部数据和计算，帮助开发者增强 LLM 的功能，使其不仅能生成文本，还能执行其他任务。这有助于促进高级 AI 应用的开发，例如智能聊天机器人、复杂问答系统和自动化数据分析工具。\\r\\n\\r\\n视频：使用 LangChain 在 Vertex AI 上构建依托 AI 技术的应用\\r\\n\\r\\n# LangChain 和 AI\\r\\n\\r\\nLangChain 为开发者提供了许多潜在优势，尤其是在涉及 LLM 的应用中。其模块化设计可提高代码可重用性并缩短开发时间，从而实现快速原型设计和迭代。分布式架构可以高效处理大量语言数据，确保可伸缩性和高可用性。\\r\\n\\r\\n此外，LangChain 还提供了一致的接口来与 LLM 交互，从而抽象掉 API 管理的复杂性。这一简化的界面使开发者能够专注于构建应用，而不必担心基础设施问题。 [...] LangChain 具有灵活性和模块化特性，因此适合构建各种领域中依托 LLM 的多种应用。一些常见的应用和示例包括：\\r\\n\\r\\n### 聊天机器人和对话代理\\r\\n\\r\\n聊天机器人和对话代理\\r\\n\\r\\n构建复杂的聊天机器人，将 LLM 与记忆和外部知识集成，使其能够保持上下文、回答问题并进行自然语言对话。\\r\\n\\r\\n### 问答系统\\r\\n\\r\\n问答系统\\r\\n\\r\\n创建能够从特定文档或知识库中检索信息并根据该上下文提供准确答案的系统。\\r\\n\\r\\n### 文档总结\\r\\n\\r\\n文档总结\\r\\n\\r\\n开发能够自动生成长文本（如文章、报告或电子邮件）简洁摘要的工具。\\r\\n\\r\\n### 数据分析和提取\\r\\n\\r\\n数据分析和提取\\r\\n\\r\\n构建能够与结构化或非结构化数据源交互的应用，以根据自然语言查询检索、分析和总结信息。\\r\\n\\r\\n### 代码理解和辅助\\r\\n\\r\\n代码理解和辅助\\r\\n\\r\\n支持开发可帮助开发者理解代码、生成代码段或协助调试的工具。\\r\\n\\r\\n### 检索增强生成 (RAG)\\r\\n\\r\\n检索增强生成 (RAG)\\r\\n\\r\\n实现可以提取相关外部数据的系统，以增强 LLM 可用的信息，从而生成更准确、更具时效性的回答。\\r\\n\\r\\n### 利用 Google Cloud 解决业务难题\\r\\n\\r\\n## 相关产品和服务 [...] ## LangChain 如何运作？\\r\\n\\r\\nLangChain 的工作原理是将不同的组件“链接”在一起，为依托 LLM 的应用创建连贯的工作流。这种模块化方法将基于语言的复杂 AI 系统分解为可重复使用的各个部分。当用户提交查询时，LangChain 可以通过一系列步骤处理此输入。\\r\\n\\r\\n例如，典型的工作流可能涉及：\\r\\n\\r\\n通过这种链接方法，开发者可以定义应用处理用户的请求并创建回答所采取的一系列操作。LangChain 将这些步骤简化为组件，因此可以更容易地构建需要与 LLM 或外部资源进行多次交互的应用。该框架还提供了使用不同 LLM 的方法，让开发者可以自由选择最适合其特定应用的模型。\\r\\n\\r\\n详细了解如何将 LangChain 与 Vertex AI 搭配使用。\\r\\n\\r\\n## LangChain 的主要功能\\r\\n\\r\\nLangChain 提供了一系列功能，旨在促进开发依托 LLM 的应用。这些功能围绕着一个核心概念，那就是帮助管理与模型的互动、连接到数据以及编排复杂的行为。\\r\\n\\r\\n### 数据连接和检索\\r\\n\\r\\n### 链\\r\\n\\r\\n### 代理\\r\\n\\r\\n### 内存\\r\\n\\r\\n### LangChain 应用和示例', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_5.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_5.txt', 'file_name': 'document_5.txt', 'file_type': 'text/plain', 'file_size': 3502, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='1.   LLM 和提示：LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外，它还包括一些用于处理 LLM 的便捷实用程序。\\r\\n2.   链(Chain)：这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口，与各种工具集成，为流行应用提供端到端的链。\\r\\n3.   数据增强生成：LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如，它可以帮助总结长文本或使用特定数据源回答问题。\\r\\n4.   Agents：Agents 让 LLM 做出有关行动的决定，采取这些行动，检查结果，并继续前进直到工作完成。LangChain 提供了代理的标准接口，多种代理可供选择，以及端到端的代理示例。\\r\\n5.   内存：LangChain 有一个标准的内存接口，有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。\\r\\n6.   评估：很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。\\r\\n\\r\\n使用示例 [...] Index 是一种组织文档的方式，使语言模型更容易与它们交互。检索器是用于获取相关文档并将它们与语言模型组合的接口。LangChain 提供了用于处理不同类型的索引和检索器的工具和功能，例如矢量数据库和文本拆分器。\\r\\n\\r\\n### 6. Chat Message History\\r\\n\\r\\nLangChain 主要通过聊天界面与语言模型进行交互。ChatMessageHistory 类负责记住所有以前的聊天交互数据，然后可以将这些交互数据传递回模型、汇总或以其他方式组合。这有助于维护上下文并提高模型对对话的理解。\\r\\n\\r\\n### 7. Agents and Toolkits\\r\\n\\r\\nAgent 是在 LangChain 中推动决策制定的实体。他们可以访问一套工具，并可以根据用户输入决定调用哪个工具。Tookits 是一组工具，当它们一起使用时，可以完成特定的任务。代理执行器负责使用适当的工具运行代理。\\r\\n\\r\\n通过理解和利用这些核心概念，您可以利用 LangChain 的强大功能来构建适应性强、高效且能够处理复杂用例的高级语言模型应用程序。\\r\\n\\r\\nWhat is a LangChain Agent? [...] 在此示例中，我们使用 a`ConversationChain`来维护跨与 AI 的多次交互的对话上下文。\\r\\n\\r\\n就是这样！现在您已经对如何使用 LangChain 构建端到端的语言模型应用有了深入的了解。通过遵循这些示例，您可以使用 LLM、聊天模型、代理、链和内存功能开发强大的语言模型应用程序。\\r\\n\\r\\n结论\\r\\n--\\r\\n\\r\\n总之，LangChain 是一个强大的框架，它通过提供模块化和灵活的方法简化了构建高级语言模型应用程序的过程。通过了解组件、链、提示模板、输出解析器、索引、检索器、聊天消息历史记录和代理等核心概念，您可以创建适合您特定需求的自定义解决方案。LangChain 的适应性和易用性使其成为开发人员的宝贵工具，使他们能够释放语言模型的全部潜力，并在广泛的用例中创建智能的、上下文感知的应用程序。\\r\\n\\r\\n> 原文链接\\r\\n\\r\\n发布于 2023-04-09 07:20・上海\\r\\n\\r\\nLLM\\r\\n\\r\\nLangChain\\r\\n\\r\\nAI\\r\\n\\r\\n\\u200b赞同 685\\u200b\\u200b52 条评论\\r\\n\\r\\n\\u200b分享\\r\\n\\r\\n\\u200b喜欢\\u200b收藏\\u200b申请转载\\r\\n\\r\\n\\u200b\\r\\n\\r\\n写下你的评论...\\r\\n\\r\\n52 条评论\\r\\n\\r\\n默认\\r\\n\\r\\n最新\\r\\n\\r\\nImage 4: 兔兔\\r\\n\\r\\n庞胜轩\\r\\n\\r\\n实际上就几步', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_6.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_6.txt', 'file_name': 'document_6.txt', 'file_type': 'text/plain', 'file_size': 3563, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='LangChain 是開放原始碼的架構，可根據大型語言模型 (LLM) 打造應用程式。LLM 是針對大量資料預先訓練的大型深度學習模型，可以對使用者查詢生成回應，例如回答問題或從文本提示中建立影像。LangChain 提供工具和抽象化，藉以改善模型產生之資訊的客製化程度、準確度和關聯性。例如，開發人員可使用 LangChain 元件建立新提示鏈，或客製化現有的範本。LangChain 還包括其他元件，讓 LLM 無須重新訓練即可取得新資料。\\r\\n\\r\\n請參閱大型語言模型 (LLM) 的相關資訊\\r\\n\\r\\n## LangChain 為何重要？\\r\\n\\r\\nLLM 在於一般情境中回應提示方面十分出色，但在從未受訓練的特定領域中卻難以運作。提示詞是人員用來尋求 LLM 之回應的查詢。例如，LLM 可藉由提供估算來提供有關電腦價格的解答。但是，其無法列出您公司銷售之特定電腦型號的價格。\\r\\n\\r\\n若要執行此點，機器學習工程師必須將 LLM 與組織的內部資料來源整合，並採用提示詞工程，此為資料科學家將輸入精簡為具有特定結構和情境的生成式模型中的實務操作。 [...] LangChain 為 AI 開發人員提供工具，用以連接語言模型與外部資料來源。其為開放原始碼，並由活躍的社群提供支援。各機構可免費使用 LangChain，並從其他專精該架構的開發人員取得支援。\\r\\n\\r\\n## LangChain 如何運作？\\r\\n\\r\\n開發人員可以使用 LangChain，藉由指定會產生所需結果的步驟，靈活地採用適合特定業務環境的語言模型。\\r\\n\\r\\n### 鏈\\r\\n\\r\\n鏈是在 LangChain 中包含各種 AI 元件的基本原則，以提供情境感知回應。鏈是從使用者查詢到模型輸出的一系列自動化行動。例如，開發人員可將鏈用於：\\r\\n\\r\\n 連線至不同的資料來源。\\r\\n 產生獨特內容。\\r\\n 翻譯多種語言。\\r\\n 回答使用者查詢。\\r\\n\\r\\n### 連結\\r\\n\\r\\n鏈由連結組成。開發人員執行之串聯在一起以形成鏈接序列的每個動作都稱為鏈。開發人員可以使用連結將複雜的任務分為多個較小任務。連結的範例包括：\\r\\n\\r\\n 格式化使用者輸入。\\r\\n 將查詢傳送至 LLM。\\r\\n 從雲端儲存中擷取資料。\\r\\n 從一種語言翻譯至另一種語言。 [...] LangChain 會簡化開發此類資料回應應用程式的中繼步驟，使提示詞工程更有效率。其旨在更輕鬆地開發由語言模型驅動的多種應用程式，包括聊天機器人、回答問題、產生內容、摘要器等。\\r\\n\\r\\n以下各節會描述 LangChain 的優勢。\\r\\n\\r\\n### 重新使用語言模型\\r\\n\\r\\n組織可以使用 LangChain 來重新使用 LLM，以適用於網域特定的應用程式，而無需重新訓練或微調。開發團隊可參考專有資訊來建立複雜應用程式，以擴增模型回應。例如，您可使用 LangChain 來建置應用程式，從已儲存的內部文件讀取資料，並將其彙總為對話式回應。您可建立檢索增強生成 (RAG) 工作流程，在提示期間將新資訊引入語言模型。執行如 RAG 之類的情境感知工作流程，可減少模型幻覺並提高回應準確度。\\r\\n\\r\\n### 簡化 AI 開發\\r\\n\\r\\nLangChain 會藉由將資料來源整合和提示詞完善的複雜性虛擬化，簡化人工智慧 (AI) 開發。開發人員可自訂序列，以快速建置複雜應用程式。軟體團隊無需對商業邏輯進行程式設計，而是可修改 LangChain 提供的範本和程式庫，以縮短開發時間。\\r\\n\\r\\n### 開發人員支援', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_7.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_7.txt', 'file_name': 'document_7.txt', 'file_type': 'text/plain', 'file_size': 3034, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='简单地说，LangChain 是一个标准化接口，旨在简化构建 AI 应用的过程。它提供了一系列工具，可帮助您连接不同的组件，从而构建出复杂的工作流。这些工具包括 \\r\\nLLM\\r\\n 以及多种类型的数据源。当用户与应用进行交互时，LangChain 会使用其与 LLM 的连接来处理请求并生成适当的回应。此外，它还能利用文档或数据库等外部来源中的信息和数据，以提供更加精确、更贴合上下文的答案。\\r\\n\\r\\n例如，当用户提出问题时，LangChain 会利用 LLM 来理解问题并构思回答。同时，它还会整合一个或多个外部数据源中的信息，以丰富和完善其回答。这样，您的应用程序将变得更加智能，能够处理复杂且专业的查询。\\r\\n\\r\\n从本质上讲，您通过为 LLM 提供与希望它解决的问题更加相关的数据，从而增强了它的能力。\\r\\n\\r\\nLangChain 既可作为 Python 包也可作为 TypeScript 包使用，并具备以下几项令人瞩目的功能： [...] 模型交互：\\r\\n  LangChain 支持与任意语言模型进行交互，有效管理输入，并从输出中提取所需信息。\\r\\n 高效集成：\\r\\n  LangChain 能够与 OpenAI 和 Hugging Face 等热门 AI 平台实现高效集成。\\r\\n 灵活性和定制化：\\r\\n  LangChain 提供了高度的灵活性和丰富的定制选项，结合强大的组件，能够跨不同行业构建多种应用程序。\\r\\n 核心组件：\\r\\n  这个框架的核心包括：LangChain 库、LangChain 模板、LangServe 和 LangSmith，能够极大简化整个应用程序的生命周期。\\r\\n 标准化接口：\\r\\n  LangChain 提供了标准化的接口、提示管理和内存功能，使语言模型能够轻松与数据源进行交互。\\r\\n\\r\\n这些功能的结合赋予了 LangChain 极高的灵活性、快速响应能力、可扩展性以及易用性，对于任何希望涉足 AI 领域的开发人员而言，这无疑是一个令人振奋的好消息。\\r\\n\\r\\n## LangChain 的工作原理 [...] LangChain 是一个与 LLM 集成的模块化框架。它是一个标准化的接口，隐藏了与不同 LLM API 协作的复杂性和难度，无论您想集成 GPT-4、LLaMA 还是其他任何 LLM，都可以通过相同的过程轻松实现。此外，LangChain 还具备动态 LLM 选择功能，这意味着开发人员可以根据使用 LangChain 执行的具体任务，选择最合适的 LLM。\\r\\n\\r\\n同时，模块化设计还极大地促进了输入数据的处理与转换为可执行输出的过程。它能够处理多种数据类型，涵盖文本、代码以及多媒体格式，并提供预处理、清理和规范化数据的工具。这些步骤旨在确保数据能够被 LLM 有效使用，可能包括词汇切分、数据规范化以及语言识别等处理环节。\\r\\n\\r\\n此外，LangChain 还能处理 LLM 的输出，将其转换为符合应用或特定任务需求的格式。这包括文本格式化、生成代码片段以及提供复杂数据的摘要等。\\r\\n\\r\\n## LangChain 的核心概念', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_8.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_8.txt', 'file_name': 'document_8.txt', 'file_type': 'text/plain', 'file_size': 3308, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='## 大白话讲清楚：什么是 Langchain 及其核心概念\\r\\n\\r\\n# 大白话讲清楚：什么是 Langchain 及其核心概念\\r\\n\\r\\n作者头像\\r\\n\\r\\n在AI和机器学习领域，每天都有新技术和框架涌现。今天，我们来聊聊最近引起广泛关注的一个框架 —— Langchain。\\r\\n\\r\\n那么，Langchain到底是什么，它为什么这么受欢迎，以及它是如何工作的呢？\\r\\n\\r\\n别担心，我会用大白话帮你一步步弄明白！\\r\\n\\r\\n### 1、Langchain 简介\\r\\n\\r\\n想象一下，如果你能让聊天机器人不仅仅回答通用问题，还能从你自己的数据库或文件中提取信息，并根据这些信息执行具体操作，比如发邮件，那会是什么情况？Langchain 正是为了实现这一目标而诞生的。\\r\\n\\r\\nLangchain 是一个开源框架，它允许开发人员将像 GPT-4 这样的大型语言模型与外部的计算和数据源结合起来。目前，它提供了 Python 和 JavaScript（确切地说是 TypeScript）的软件包。\\r\\n\\r\\n上图展示了Langchain的工作原理，这是一个用于提升大型语言模型（LLMs）功能的框架。\\r\\n\\r\\n它通过三个核心组件实现增强： [...] Langchain 的这种结构设计使LLMs不仅能够处理文本，还能够在更广泛的应用环境中进行操作和响应，大大扩展了它们的应用范围和有效性。\\r\\n\\r\\n如果上面还不够大白话，我的理解 LangChain 就等价于数据库领域的 JDBC。\\r\\n\\r\\nLangChain 和 JDBC 确实有一些相似之处，特别是它们都作为连接和集成不同系统的桥梁。\\r\\n\\r\\n它们都扮演了一种中介的角色，允许开发者利用特定技术（AI 或数据库）与其他系统或应用进行交互。\\r\\n\\r\\n### 2、为什么要用 Langchain？\\r\\n\\r\\n数据连接：Langchain 允许你将大型语言模型连接到你自己的数据源，比如数据库、PDF文件或其他文档。这意味着你可以使模型从你的私有数据中提取信息。\\r\\n\\r\\n行动执行：不仅可以提取信息，Langchain 还可以帮助你根据这些信息执行特定操作，如发送邮件。无需硬编码：它提供了灵活的方式来动态生成查询，避免了硬编码的需求。\\r\\n\\r\\n### 3、Langchain 核心概念\\r\\n\\r\\nLangchain 由几个核心概念组成： [...] 数据分析和数据科学：连接到公司的客户数据或市场数据，极大地促进数据分析的进展。\\r\\n\\r\\n总之，Langchain 打开了一个充满可能性的新世界，让AI技术更加贴近我们的实际需求和数据，使得机器学习应用的发展更加多样化和个性化。\\r\\n\\r\\n希望这篇文章能帮你对 Langchain 有了更清晰的认识！\\r\\n\\r\\n下一篇有代码实战，你不妨也过一下哈。欢迎留言交流......\\r\\n\\r\\n### 参考\\r\\n\\r\\n1.\\r\\n\\r\\n2.\\r\\n\\r\\n本文分享自 铭毅天下Elasticsearch 微信公众号，前往查看\\r\\n\\r\\n如有侵权，请联系 cloudcommunity@tencent.com 删除。\\r\\n\\r\\n本文参与 腾讯云自媒体同步曝光计划  ，欢迎热爱写作的你一起参与！\\r\\n\\r\\n### 社区\\r\\n\\r\\n### 活动\\r\\n\\r\\n### 圈层\\r\\n\\r\\n### 关于\\r\\n\\r\\n### 腾讯云开发者\\r\\n\\r\\n扫码关注腾讯云开发者\\r\\n\\r\\n扫码关注腾讯云开发者\\r\\n\\r\\n领取腾讯云代金券\\r\\n\\r\\n### 热门产品\\r\\n\\r\\n### 热门推荐\\r\\n\\r\\n### 更多推荐\\r\\n\\r\\nCopyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_9.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_9.txt', 'file_name': 'document_9.txt', 'file_type': 'text/plain', 'file_size': 2705, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='在首篇教程中，我们将先暂不涉及具体的代码开发与功能实现，而先总体上回答两个方面的问题：\\r\\n\\r\\n   大语言模型、提示语、AI应用分别是什么？\\r\\n   LangChain 是什么？为什么需要使用它？\\r\\n\\r\\n如果你已经很熟悉相关的内容，而希望立刻探索 LangChain 框架的使用，你可以直接进入下一篇教程：LangChain 快速启动：安装与使用。\\r\\n\\r\\nAI 应用与调用链\\r\\n\\r\\n在本系列教程中，AI 应用通常能协助用户利用模型完成特定的生成型任务，比如文档问答、文章修改、生成代码等。其核心业务逻辑是包括一次或多次调用大语言模型的工作流（Workflow）。\\r\\n\\r\\n在 LangChain 中，这个工作流被称作 Chain（预设的工作流） 或 Agent（大语言模型参与执行步骤与工具的选择）。在这里简化起见，我们将 AI 应用的业务逻辑统称为“调用链”，即它包括了 Chain 与 Agent。\\r\\n\\r\\n请注意，与之前主要进行数据预测的判别型 AI 模型及其应用不同，生成式 AI 应用的 工作流的最终目标通常是生成新的内容。 [...] 至此，我们从五个方面完成一个简单的 AI 大语言模型和 AI应用的简介。相信你对 AI 大模型、AI 应用已经有了必要的认识。\\r\\n\\r\\n接下来，我们将开始介绍 LangChain 的基本原理，并探讨一个重要的问题：我们为什么需要使用它？\\r\\n\\r\\n2. LangChain 是什么？为什么需要它？ \\u200b\\r\\n\\r\\n简言之，LangChain 是一个 AI 应用开发框架。它同时提供 Python 和 Javascript 版本的开源库，让开发者能够：\\r\\n\\r\\n   方便地连接多种 AI 大语言模型，\\r\\n   组织自己的提示语模板，\\r\\n   连接其他组件如加载文档或搜索、连接向量库\\r\\n   最终编排形成自己的 AI 应用的业务逻辑。\\r\\n\\r\\n### 2.1 LangChain 的整体架构 \\u200b\\r\\n\\r\\n在2023年生成式 AI 的快速发展中，LangChain 也迅速扩张。在2024年初，它的整体架构如下图所示，其中深色部分是狭义的 LangChain 开源库。它现在包括三大部分： [...] 3. 小结 \\u200b\\r\\n\\r\\n总而言之，当你关注 AI 应用开发时，LangChain 既是一个强大的 AI 应用快速搭建框架，又是一个高质量的的学习资源。AI 应用开发者持续跟踪它总能有所收获。\\r\\n\\r\\n  \\r\\n\\r\\n参考链接：\\r\\n\\r\\nLangChain: \\r\\n\\r\\nLangChain Python docs: \\r\\n\\r\\nLangChain.js: \\r\\n\\r\\nLangChain Github: \\r\\n\\r\\nLangChain Cookbook: \\r\\n\\r\\n附录：LangChain 于2024.2展示于其首页的产品架构\\r\\n\\r\\nImage 10\\r\\n\\r\\n最新更新: 11/26/24\\r\\n\\r\\nPager\\r\\n\\r\\n上一页 教程导览\\r\\n\\r\\n下一页 2. 快速启动：安装与使用\\r\\n\\r\\nAlang.AI - Make Great AI Applications\\r\\n\\r\\nCopyright © 2025', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}')]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 31
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:11:18.238526Z",
     "start_time": "2025-09-16T17:11:18.180330Z"
    }
   },
   "cell_type": "code",
   "source": "pipeline.arun(documents=documents,num_workers=4)",
   "id": "d2cac8e7e1d8a80c",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 40
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "c834815d5661b0c"
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:11:09.178725Z",
     "start_time": "2025-09-16T17:11:09.157439Z"
    }
   },
   "cell_type": "code",
   "source": "",
   "id": "4c468f02344d2b5d",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_1.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_1.txt', 'file_name': 'document_1.txt', 'file_type': 'text/plain', 'file_size': 3372, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='# 什么是 LangChain？\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n## 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源框架，用于构建基于大型语言模型（LLM）的应用程序。LLM 是基于大量数据预先训练的大型深度学习模型，可以生成对用户查询的响应，例如回答问题或根据基于文本的提示创建图像。LangChain 提供各种工具和抽象，以提高模型生成的信息的定制性、准确性和相关性。例如，开发人员可以使用 LangChain 组件来构建新的提示链或自定义现有模板。LangChain 还包括一些组件，可让 LLM 无需重新训练即可访问新的数据集。\\r\\n\\r\\n阅读有关大型语言模型（LLM）的信息\\r\\n\\r\\n## 为什么 LangChain 很重要？\\r\\n\\r\\nLLM 擅长在常规上下文下对提示做出响应，但在未接受过训练的特定领域却很吃力。提示是人们寻求 LLM 回复时所用的查询。例如，LLM 可以通过提供估算值来回答计算机成本问题。但是，它无法列出贵公司销售的特定计算机型号的价格。 [...] LangChain 通过对数据来源集成和提示细化的复杂性进行抽象，来简化人工智能（AI）的开发。开发人员可以自定义序列，以快速构建复杂的应用程序。软件团队无需编程业务逻辑，即可修改 LangChain 提供的模板和库，从而缩短开发时间。\\r\\n\\r\\n### 开发人员支持\\r\\n\\r\\nLangChain 为人工智能开发人员提供将语言模型与外部数据来源相连接的工具。LangChain 是开源的，由活跃社区提供支持。组织可以免费使用 LangChain，并获得其他精通该框架的开发人员提供的支持。\\r\\n\\r\\n## LangChain 如何运作？\\r\\n\\r\\n借助 LangChain，开发人员可以通过指定产生预期结果所需的步骤，灵活调整语言模型以适应特定的业务环境。\\r\\n\\r\\n### 链\\r\\n\\r\\n链是在 LangChain 中容纳各种人工智能组件以提供上下文感知响应的基本原则。链是从用户查询到模型输出的一系列自动化操作。例如，开发人员可以将链用于：\\r\\n\\r\\n### 链接\\r\\n\\r\\n链由链接组成。开发人员串联在一起形成链式序列的每个操作都称为链接。通过链接，开发人员可以将复杂的任务分成多个较小的任务。链接示例包括： [...] 为此，机器学习工程师必须将 LLM 与组织内部数据来源整合，并应用提示工程，即数据科学家根据特定的结构和上下文对生成模型的输入进行细化的实践。\\r\\n\\r\\nLangChain 简化了开发此类数据响应式应用程序的中间步骤，提高了提示工程的效率。它旨在更轻松地开发由语言模型提供支持的各种应用程序，包括聊天机器人、问答、内容生成、摘要器等。\\r\\n\\r\\n以下部分介绍了 LangChain 的好处。\\r\\n\\r\\n### 重新利用语言模型\\r\\n\\r\\n借助 LangChain，组织可以重新将 LLM 用于特定领域的应用程序，而无需重新训练或微调。开发团队可以构建引用专有信息的复杂应用程序，以增强模型响应。例如，您可以使用 LangChain 来构建应用程序，从存储的内部文档中读取数据并将其汇总为对话式响应。您可以创建检索增强生成（RAG）工作流程，在提示时向语言模型引入新信息。实施 RAG 等上下文感知工作流程可减少模型幻觉并提高响应精度。\\r\\n\\r\\n### 简化人工智能开发', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_10.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_10.txt', 'file_name': 'document_10.txt', 'file_type': 'text/plain', 'file_size': 3207, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='LangChain是一个开源的Python库，它提供了构建基于大模型的AI应用所需的模块和工具。它可以帮助开发者轻松地与大型语言模型(LLM)集成，实现文本生成、问答、翻译、对话等任务。LangChain的出现大大降低了AI应用开发的门槛，使得任何人都可以基于LLM构建自己的创意应用。\\r\\n\\r\\n##### 如何理解？\\r\\n\\r\\nLangChain作为一个桥梁，将复杂的语言模型（如GPT）与具体的应用场景连接起来。它通过提供高级抽象和简化的API，让开发者无需深入了解模型的内部机制即可使用这些模型。如GPT系列，这就像是驾驶一辆汽车，您无需了解发动机的工作原理，只需知道如何操作方向盘和踏板。\\r\\n\\r\\n###### 特性\\r\\n\\r\\n在这里插入图片描述\\r\\n\\r\\n##### 主要模块的作用及工作方式\\r\\n\\r\\nLangChain是一个复杂且灵活的框架，旨在简化大型语言模型（如GPT）的集成和使用。它由多个模块组成，每个模块负责特定的功能，共同协作以提供强大的自然语言处理能力。以下是LangChain的一些主要模块以及它们的作用和工作方式：\\r\\n\\r\\n##### 业务人员如何理解其结构和工作原理 [...] ##### LangChain的功能和目的：\\r\\n\\r\\nLangChain的功能和目的主要集中在提供一个框架和工具集，以便更轻松、高效地利用大型语言模型（如GPT）来构建应用程序。以下是LangChain的主要功能、目的，以及它与GPT之间的联系：\\r\\n\\r\\n##### LangChain与GPT的联系：\\r\\n\\r\\n##### demo实现步骤\\r\\n\\r\\n结果  \\r\\n 通过以上步骤，我们将成功创建一个能够提供天气信息的聊天机器人。用户可以查询特定地点的天气情况，而机器人将利用集成的天气API提供最新的天气数据，并通过语言模型以自然的方式回应用户。\\r\\n\\r\\n相关文章：  \\r\\n 2023年大语言模型神器 - LangChain  \\r\\n （万字长文）手把手教你认识学会LangChain  \\r\\n 由ChatGPT反思大语言模型（LLM）的技术精要\\r\\n\\r\\n立减 ¥\\r\\n\\r\\n博客等级\\r\\n\\r\\n### 热门文章\\r\\n\\r\\n### 分类专栏\\r\\n\\r\\n### 最新评论\\r\\n\\r\\nCSDN-Ada助手: \\r\\n不知道 算法 技能树是否可以帮到你：\\r\\n\\r\\nweixin\\\\_44782763: \\r\\n谢谢!\\r\\n\\r\\nibuki++: \\r\\n\\r\\n明道云，感兴趣可以了解一下 [...] # LangChain简明指南，LangChain是什么？可以用来做什么？\\r\\n\\r\\n##### 背景\\r\\n\\r\\n自从2020年OpenAI发布GPT-3之后，大型语言模型（LLM）就在世界上广受欢迎，一直保持稳定的增长。直到2022年底，对于LLM和生成AI等广泛领域的兴趣才开始迅速增长，这可能是因为大量关于GPT-3的重大进展推动了这一趋势。Google发布了名为LaMDA的具有“有感知能力”的聊天机器人，首个高性能且开源的LLM——BLOOM也已经发布。  \\r\\n 此外，OpenAI还发布了他们的下一代文本嵌入模型和下一代“GPT-3.5”模型。在LLM领域取得巨大飞跃后，OpenAI推出了名为ChatGPT的新模型，使LLM成为人们关注的焦点。同时，Harrison Chase创造的LangChain也应运而生，这个库的创建者只花费了几个月的时间就构建出了令人惊叹的功能，尽管它还处于早期阶段。\\r\\n\\r\\n##### 简介', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_11.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_11.txt', 'file_name': 'document_11.txt', 'file_type': 'text/plain', 'file_size': 2969, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='上面我們介紹 LangChain 主要功能在於整合 LLMs 、資料庫和程式應用，使得我們可以更加簡單地使用 LLMs。除此之外， LangChain 還有哪些特點讓它如此重要呢？以下就來談談 LangChain 的 4 大優勢：\\r\\n\\r\\n1. 高度靈活性\\r\\n\\r\\nLangChain 支援 Python、JavaScript 這兩種主要程式語言。由於兩者的語法和編寫方式不同，所以在兩種語言之間切換時需要修改程式碼。不過 LangChain 的設計使其在各個語言版本中提供相似的介面和功能，讓你可以在不同的語言環境下，用相似的操作邏輯來完成，這為開發者在不同語言間切換時提供了一定的靈活性。\\r\\n\\r\\n2. 簡化使用流程\\r\\n\\r\\nLangChain 提供相當豐富的應用程式介面（API），裡面包含多種常使用到的元件，這讓使用者可以直接根據情況自由運用，不需要一一深入了解模型內容、從頭開始撰寫程式碼，簡化了使用流程。\\r\\n\\r\\n3. 方便擴充\\r\\n\\r\\nLangChain 可以配置和擴充外部的資源和工具，如資料數據庫。因此當使用者需要更詳細的資料時，便能方便使用。同時也能運用外部的工具和資源，進行更複雜的數據運算。 [...] |  | Developer | Plus | Enterprise |\\r\\n ---  --- |\\r\\n| 使用者人數 | 1人 | 最多10人 | 根據客製 |\\r\\n| 追蹤功能 | 有 | 有 | 有 |\\r\\n| 監測功能 | 有 | 有 | 有 |\\r\\n| 信箱支援 | 無 | 有 | 有 |\\r\\n| Slack 頻道支援 | 無 | 無 | 有 |\\r\\n| 數據隱私管理 | 無 | 無 | 有 |\\r\\n\\r\\n## LangChain 框架介紹｜功能及元件完整解析\\r\\n\\r\\n### （一）LangChain 架構包含什麼？\\r\\n\\r\\n LangChain-core\\r\\n\\r\\nLangChain-core 是 LangChain 的核心部分，包含可使用的基礎元件，和 LangChain 表達式語言（LangChain Expression Language），用於連結和組成 LangChain 的不同功能。\\r\\n\\r\\n LangChain-community [...] LangChain 是一種幫助應用程式構築的框架，特別是「大型語言模型」 LLM。LLM 是一種人工智慧模型，通過大量的文本資料訓練，即可生成文字、翻譯以及回答問題。而 LangChain 整合了 LLMs（多種 LLM）、資料庫與應用介面，使我們能夠更直觀地操作。\\r\\n\\r\\n根據 LangChain 中文官網\\r\\n的資訊，其包含 Chains（鏈）以及一些功能元件，這些是可以直接使用的程式碼，讓我們能根據實際需求自由組合。\\r\\n\\r\\n簡單來說，可以將 LangChain 形容成一個積木箱，裡面提供了許多現成的積木，讓我們可以依據情況取用並組裝，因此建構時就不需要從零開始寫所有的程式碼。\\r\\n\\r\\n因為 AI 的發展變化迅速，若是每次改變方式都要從頭寫程式碼，會浪費太多時間在基礎的變動上。如果藉由 LangChain 整合、串聯 LLMs 與程式應用 ，就能簡化編寫 AI 的過程，讓使用者更專注在系統的設計，也能提高效率！\\r\\n\\r\\n### （二）LangChain 為什麼重要？4 大優勢一次解析！', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_12.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_12.txt', 'file_name': 'document_12.txt', 'file_type': 'text/plain', 'file_size': 3141, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='### 为什么选择 LangChain？\\r\\n\\r\\nLangChain 易于上手，并在您扩展时为您提供选择、灵活性和力量。\\r\\n\\r\\n3000+ 贡献者\\r\\n\\r\\n任何以 LLM 为中心的开发者框架中最大的社区。\\r\\n\\r\\n600+ 集成\\r\\n\\r\\n提供最大的可插拔集成库。\\r\\n\\r\\n从 0 到 100\\r\\n\\r\\n简单易上手，但功能强大，足以用于生产。LCEL 和 LangServe 为您提供控制权和快速部署路径。\\r\\n\\r\\n## 我们的方法\\r\\n\\r\\n检索代理评估\\r\\n\\r\\n## LangChain 常见问题解答\\r\\n\\r\\n如果我只使用一个模型或向量数据库提供商，LangChain 还有用吗？\\r\\n\\r\\n是的 - 即使您只使用一个提供商，LangChain 也很有价值。它的 LangChain 表达式语言标准化了并行化、回退和异步等方法，以实现更持久的执行。我们还通过 LangSmith 提供开箱即用的可观测性，使进入生产的过程更加顺畅。\\r\\n\\r\\nLangChain 是开源的吗？\\r\\n\\r\\n是的 - LangChain 是一个 MIT 许可的开源库，可以免费使用。\\r\\n\\r\\n人们使用 LangChain 最常见的方式是什么？ [...] # 构建 LLM 应用未来的最大社区\\r\\n\\r\\nLangChain 灵活的抽象和 AI 优先的工具包使其成为开发者构建 GenAI 应用的首选。  \\r\\n加入 100 万+ 构建者，将他们的 LLM 应用开发标准化  \\r\\n在 LangChain 的 Python 和 JavaScript 框架中。\\r\\n\\r\\n开始使用 Python开始使用 JavaScript\\r\\n\\r\\n## 一套完整的可互操作的构建模块\\r\\n\\r\\n使用广泛的组件库构建端到端应用程序。想要更换模型？通过将供应商可选性纳入您的 LLM 基础设施设计，使您的应用程序面向未来。\\r\\n\\r\\n阅读文档\\r\\n\\r\\n## 利用您的数据增强 LLM 的能力\\r\\n\\r\\nLangChain 将 LLM 连接到您公司的私有数据和 API，以构建上下文感知、推理应用程序。使用流行的 RAG 或简单链等方法，快速从原型转向生产。\\r\\n\\r\\n构建 RAG 应用\\r\\n\\r\\n## 与任何数据或知识来源的智能连接\\r\\n\\r\\n查看我们所有的集成\\r\\n\\r\\n## 需要开箱即用的可观测性？\\r\\n\\r\\nLangSmith 让应用程序的行为和性能一目了然。获得提示级别的可见性，并结合工具与您的团队一起调试、测试、评估、部署和监控您的应用程序。\\r\\n\\r\\n获取演示免费注册 [...] LangChain 通常用于将一系列 LLM 调用链接在一起或用于检索增强生成。如果您想构建代理，我们建议您试用 LangGraph。\\r\\n\\r\\n我可以在生产环境中使用 LangChain 吗？\\r\\n\\r\\n是的，LangChain 0.1 及更高版本已准备好用于生产环境。我们简化了软件包，减少了依赖项，从而更好地与您的其余代码库兼容。我们还承诺在 0.1 之后的任何 LangChain 小版本上都不会有破坏性更改，因此您可以在任何小版本上升级您的补丁版本（例如，0.2.x），而不会产生影响。\\r\\n\\r\\nLangChain 适合企业使用吗？\\r\\n\\r\\n是的，LangChain 被财富 2000 强公司广泛使用。许多企业使用 LangChain 来使其技术栈面向未来，从而可以轻松集成额外的模型提供商，以满足他们不断变化的需求。访问我们的网站，了解公司如何使用 LangChain。\\r\\n\\r\\nLangChain 与 LangGraph 有什么不同？', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_13.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_13.txt', 'file_name': 'document_13.txt', 'file_type': 'text/plain', 'file_size': 1748, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='\\\\\\\\目录\\\\\\\\\\r\\n一、概念介绍\\r\\nLangchain 是什么？\\r\\n如何使用 LangChain？\\r\\n主要包含组件：\\r\\n二、核心模块介绍\\r\\nModel I/O\\r\\nLLMs\\r\\nChat\\r\\nPrompts\\r\\nPromptTemplate 提示模板\\r\\nFewShotPromptTemplate 选择器\\r\\nChatPromptTemplate 聊天提示模版\\r\\nStructuredOutputParser 输出解析器\\r\\nData connection\\r\\nDocument loaders 文档加载器\\r\\nDocument transformers 文档转换器\\r\\nText embedding models 文本嵌入\\r\\nVectorStores 向量存储\\r\\nRetrievers 查询\\r\\nCaching Embeddings 缓存嵌入\\r\\nMemory\\r\\nChains\\r\\nAgents\\r\\nCallbacks\\r\\n三、Langchain + LLM 结合使用场景\\r\\n四、结论\\r\\n五、参考文献\\r\\n\\\\ \\\\ \\\\\\r\\n llm(\"Please introduce yourself\") llm.get\\\\_num\\\\_tokens(question)`\\r\\n##### Chat [...] LangChain 提供了一个回调系统，允许您连接到 LLM 申请的各个阶段。这对于日志记录、监控、流传输和其他任务非常有用。\\r\\n可以使用整个 API 中可用的参数来订阅这些事件。该参数是处理程序对象的列表，这些对象预计将实现下面更详细描述的一个或多个方法。\\r\\n\\\\ \\\\ \\\\\\r\\n[]( + LLM 结合使用场景 [...] ##### Retrievers 查询\\r\\n检索器是一个接口，它根据非结构化查询返回文档。它比矢量存储更通用。检索器不需要能够存储文档，只需返回（或检索）它。矢量存储可以用作检索器的骨干，但也有其他类型的检索器。\\r\\n检索器接口是一种通用接口，使文档和语言模型易于组合。LangChain 中公开了一个 get\\\\_relevant\\\\_documents 方法，该方法接受查询（字符串）并返回文档列表。\\r\\n重点关注数据压缩，目的是获得相关性最高的文本带入 prompt 上下文，这样既可以减少 token 消耗，也可以保证 LLM 的输出质量。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_14.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_14.txt', 'file_name': 'document_14.txt', 'file_type': 'text/plain', 'file_size': 2812, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='我们可以简单的理解为他可以动态的帮我们选择和调用chain或者已有的工具。\\r\\n\\r\\n执行过程可以参考下面这张图:\\r\\n\\r\\n### Embedding\\r\\n\\r\\n用于衡量文本的相关性。这个也是 OpenAI API 能实现构建自己知识库的关键所在。\\r\\n\\r\\n他相比 fine-tuning 最大的优势就是，不用进行训练，并且可以实时添加新的内容，而不用加一次新的内容就训练一次，并且各方面成本要比 fine-tuning 低很多。\\r\\n\\r\\n> 具体比较和选择可以参考这个视频：\\r\\n\\r\\n## 实战\\r\\n\\r\\n通过上面的必备概念大家应该已经可以对 LangChain 有了一定的了解，但是可能还有有些懵。\\r\\n\\r\\n这都是小问题，我相信看完后面的实战，你们就会彻底的理解上面的内容，并且能感受到这个库的真正强大之处。\\r\\n\\r\\n因为我们 OpenAI API 进阶，所以我们后面的范例使用的 LLM 都是以Open AI 为例，后面大家可以根据自己任务的需要换成自己需要的 LLM 模型即可。\\r\\n\\r\\n当然，在这篇文章的末尾，全部的全部代码都会被保存为一个 colab 的 ipynb 文件提供给大家来学习。 [...] > 如果想把 OPENAI API 的请求根路由修改成自己的代理地址，可以通过设置环境变量 “OPENAI\\\\_API\\\\_BASE” 来进行修改。\\r\\n>\\r\\n> 相关参考代码：\\r\\n>\\r\\n> 或在初始化OpenAI相关模型对象时，传入“openai\\\\_api\\\\_base” 变量。\\r\\n>\\r\\n> 相关参考代码：\\r\\n\\r\\n## 介绍\\r\\n\\r\\n众所周知 OpenAI 的 API 无法联网的，所以如果只使用自己的功能实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以，我们来介绍一个非常强大的第三方开源库：`LangChain` 。\\r\\n\\r\\n> 文档地址：\\r\\n\\r\\n这个库目前非常活跃，每天都在迭代，已经有 22k 的 star，更新速度飞快。\\r\\n\\r\\nLangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力：\\r\\n\\r\\n1. 可以将 LLM 模型与外部数据源进行连接\\r\\n2. 允许与 LLM 模型进行交互\\r\\n\\r\\n> LLM 模型：Large Language Model，大型语言模型\\r\\n\\r\\n## 基础功能\\r\\n\\r\\nLLM 调用 [...] 这是他发送给 QQ 邮箱的邮件。\\r\\n\\r\\n这只是个小例子，因为 `zapier` 有数以千计的应用，所以我们可以轻松结合 openai api 搭建自己的工作流。\\r\\n\\r\\n## 小例子们\\r\\n\\r\\n一些比较大的知识点都已经讲完了，后面的内容都是一些比较有趣的小例子，当作拓展延伸。\\r\\n\\r\\n### 执行多个chain\\r\\n\\r\\n因为他是链式的，所以他也可以按顺序依次去执行多个 chain\\r\\n\\r\\n```\\r\\nfrom langchain.llms import OpenAI\\r\\nfrom langchain.chains import LLMChain\\r\\nfrom langchain.prompts import PromptTemplate\\r\\nfrom langchain.chains import SimpleSequentialChain', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_15.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_15.txt', 'file_name': 'document_15.txt', 'file_type': 'text/plain', 'file_size': 3072, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='現在，大型語言模型之所以受到矚目，得益於其強大的生成和理解能力，使得LLM在處理複雜的語言任務方面表現卓越。就以OpenAI GPT-4 這樣的模型來說，它能夠生成酷似於人類寫作的文章，甚至能夠模擬名人的風格創作詩歌和編寫劇本。這些模型的創新不僅推動了技術的進步，也改變了我們與技術互動的方式。\\r\\n\\r\\n大型語言模型的應用範圍非常廣泛，從虛擬助理到AI聊天機器人，再到AI搜索引擎和文本內容編輯器。這些應用在各行各業中發揮著重要作用，大大地提升了自動化和AI化的水準，實具有革命性意義，成為現代科技不可或缺的一部分。\\r\\n\\r\\n## LangChain框架概述\\r\\n\\r\\nLangChain是一個用來開發應用程式的框架，這個框架它是專門為開發基於大型語言模型（LLM）的應用而設計的。它的核心理念就是讓開發者能夠輕鬆地建立和架構LLM大型語言模型的各種應用程式，用來實現各種自然語言處理的任務。\\r\\n\\r\\nLangChain由Harrison Chase等人共同開發。自2024年1月發布了第一個穩定版本以來，因其靈活的特性和強大的功能，迅速獲得了大眾廣泛的關注。 [...] 他們設計LangChain的目標，主要包括了提供簡單且容易操作的工具，幫助開發者可以輕鬆的在不同的語言模型之間切換，並能夠輕鬆地整合其他外部的資源。這使得開發者不需要特別為某個特定語言模型撰寫多種版本的程式碼，大大提高了應用程式的開發效率。\\r\\n\\r\\n以目前來說，LangChain不僅支援Python、同時也支援JavaScript這兩種主要的程式語言，為開發者提供了各種豐富的元件和工具，以便快速建構功能強大的應用服務。\\r\\n\\r\\n--\\r\\n\\r\\n--\\r\\n\\r\\n1\\r\\n\\r\\n玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation\\r\\n玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation\\r\\n\\r\\n## Published in 玩轉 Python：AI × Coding × 自動化 | Python Playground: AI, Coding & Automation [...] # LangChain框架揭秘： 從零開始了解開發LLM模型應用\\r\\n\\r\\nSean Yeh\\r\\n\\r\\n--\\r\\n\\r\\n1\\r\\n\\r\\nShare\\r\\n\\r\\n大型語言模型（LLM）的橫空出現在NLP自然語言處理領域掀起了革命。它們能夠理解和生成高品質的文本，應用於問答、翻譯等多種任務。LangChain框架則是專為開發LLM應用而設計，提供了靈活且高效的解決方案。本文將帶你深入了解如何利用LangChain從零開始開發強大的LLM應用。\\r\\n\\r\\n## 什麼是大型語言模型（LLM）？\\r\\n\\r\\n大型語言模型（Large Language Model，簡稱LLM）是一種機器學習模型，利用大量的數據與資料進行訓練，它可以夠理解並且生成自然語言。LLM的核心是類神經網絡，這種架構適合處理序列型的數據資料，如文本內容。透過學習詞彙與短句之間的關係，LLM可以執行多種語言任務，例如回答問題、生成文本內容、翻譯語言以及對文本內容進行摘要。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_16.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_16.txt', 'file_name': 'document_16.txt', 'file_type': 'text/plain', 'file_size': 2682, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='初始化智能体时，我设置了智能体的类型为ZERO_SHOT_REACT_DESCRIPTION。这是一种配置方式，特别是指智能体只会根据工具的描述来选择工具的方法。\\r\\n\\r\\nReAct方法是一种利用大型语言模型来解决各种语言推理和决策任务的方法。这个方法是在2022年10月由Shunyu Yao等人提出的，他们在论文“ReAct：在语言模型中协同推理和动作”中介绍了这个方法。\\r\\n\\r\\nReAct方法会 prompt 语言模型以交错的方式生成口头推理轨迹和文本动作，这样可以让两者之间产生更好的协同效应。推理轨迹可以帮助模型规划、跟踪和更新它的动作，以及处理异常情况。而文本动作则允许模型与外部资源，如知识库或环境进行交互，以获取更多的信息。\\r\\n\\r\\n除了已经提到的功能，LangChain 还支持以下几种智能代理： [...] LangChain 的这些智能代理是让大规模语言模型（LLM）与外界互动的关键。它们不仅能够使用 LLM 来检索和生成信息，还能够将 LLM 作为推理工具来规划一系列最优动作。这些组件和代理是 LLM 驱动应用的核心，我们将在接下来的章节中进一步探讨。\\r\\n\\r\\n之后，我们将介绍开源 LLM 的世界，特别是 Hugging Face Hub 与 LangChain 的集成\\r\\n\\r\\n关注LLM专栏\\r\\n\\r\\n专栏“[构建LLM应用程序”，将重点讨论将LLM嵌入应用程序，LangChain的具体使用等内容。未来请持续关注。 [...] 代码创建了对话摘要内存实例，并用 GooglePalm 语言模型（设定了0的温度以产生确定性输出）来生成交互摘要。然后，它保存了对话的上下文，并加载了内存变量。\\r\\n\\r\\n内存通过我们初始化的Google LLM总结了对话。在你的应用程序中定义使用哪种内存没有固定的公式，然而有些场景可能特别适合特定的内存。例如，知识图谱内存对于需要从大量多样化的数据集中访问信息并基于语义关系生成响应的应用程序非常有用，而对话摘要缓冲内存可能适合于创建能够在多轮中保持连贯和一致的上下文的对话代理，同时还能压缩和总结之前的对话历史。\\r\\n\\r\\n链\\r\\n-\\r\\n\\r\\n> Chains\\r\\n\\r\\n官方文档： cs/modules/chains\\r\\n\\r\\n锁链是一系列预先确定的动作和大型语言模型（LLM）的调用，它们简化了需要将LLM与其他LLM或其他组件结合使用的复杂应用程序的构建。LangChain提供了四种主要的锁链类型来开始使用：\\r\\n\\r\\n### LLMChain\\r\\n\\r\\nLLMChain是最常见的锁链类型。它包括一个提示模板（PromptTemplate）、一个LLM和一个可选的输出解析器（OutputParser）。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_2.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_2.txt', 'file_name': 'document_2.txt', 'file_type': 'text/plain', 'file_size': 2925, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='Skip to main content\\r\\n\\r\\n# LangChain 介绍\\r\\n\\r\\nLangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够：\\r\\n\\r\\n 具有上下文感知能力：将语言模型连接到上下文来源（提示指令，少量的示例，需要回应的内容等）\\r\\n 具有推理能力：依赖语言模型进行推理（根据提供的上下文如何回答，采取什么行动等）\\r\\n\\r\\n这个框架由几个部分组成。\\r\\n\\r\\n LangChain 库：Python 和 JavaScript 库。包含了各种组件的接口和集成，一个基本的运行时，用于将这些组件组合成链和代理，以及现成的链和代理的实现。\\r\\n LangChain 模板：一系列易于部署的参考架构，用于各种任务。\\r\\n LangServe：一个用于将 LangChain 链部署为 REST API 的库。\\r\\n LangSmith：一个开发者平台，让你可以调试、测试、评估和监控基于任何 LLM 框架构建的链，并且与 LangChain 无缝集成。\\r\\n\\r\\n这些产品一起简化了整个应用程序的生命周期： [...] 我们建议你按照我们的 快速入门 指南，通过构建你的第一个 LangChain 应用程序来熟悉框架。\\r\\n\\r\\n阅读我们的 安全 最佳实践，确保你在安全地使用 LangChain 进行开发。\\r\\n\\r\\nnote\\r\\n\\r\\n这些文档主要关注 Python LangChain 库。点击这里 查看 JavaScript LangChain 库的文档。\\r\\n\\r\\n## LangChain 表达式语言 (LCEL)\\u200b\")\\r\\n\\r\\nLCEL 是一种声明性的组合链的方式。LCEL 从第一天开始就被设计为支持将原型投入生产，无需更改代码，从最简单的“提示 + LLM”链到最复杂的链。\\r\\n\\r\\n 概述：LCEL 及其优点\\r\\n 接口：LCEL 对象的标准接口\\r\\n 如何：LCEL 的关键特性\\r\\n 烹饪书：完成常见任务的示例代码\\r\\n\\r\\n## 模块\\u200b\\r\\n\\r\\nLangChain 为以下模块提供了标准的、可扩展的接口和集成：\\r\\n\\r\\n#### 模型 I/O\\u200b\\r\\n\\r\\n与语言模型的接口\\r\\n\\r\\n#### 检索\\u200b\\r\\n\\r\\n与特定应用数据的接口\\r\\n\\r\\n#### 代理\\u200b\\r\\n\\r\\n让模型根据高级指令选择使用哪些工具\\r\\n\\r\\n## 示例、生态系统和资源\\u200b\\r\\n\\r\\n### 用例\\u200b\\r\\n\\r\\n常见的端到端用例的演练和技术，如： [...] 文档问题回答\\r\\n 聊天机器人\\r\\n 分析结构化数据\\r\\n 还有更多...\\r\\n\\r\\n### 集成\\u200b\\r\\n\\r\\nLangChain 是一个丰富的工具生态系统的一部分，这些工具与我们的框架集成，并在其基础上构建。查看我们不断增长的 集成 列表。\\r\\n\\r\\n### 指南\\u200b\\r\\n\\r\\n使用 LangChain 的最佳实践。\\r\\n\\r\\n### API 参考\\u200b\\r\\n\\r\\n前往参考部分，查看 LangChain 和 LangChain Experimental Python 包中所有类和方法的完整文档。\\r\\n\\r\\n### 开发者指南\\u200b\\r\\n\\r\\n查看开发者指南，获取有关贡献的指南和帮助设置你的开发环境的帮助。\\r\\n\\r\\n LangChain 库\\r\\n 开始使用\\r\\n LangChain 表达式语言 (LCEL)\\r\\n 模块\\r\\n 示例、生态系统和资源\\r\\n  + 用例\\r\\n  + 集成\\r\\n  + 指南\\r\\n  + API 参考\\r\\n  + 开发者指南', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_3.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_3.txt', 'file_name': 'document_3.txt', 'file_type': 'text/plain', 'file_size': 3352, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='聊天机器人：聊天机器人是大语言模型最直观的用途之一。LangChain 可用于为聊天机器人的特定使用提供适当的上下文，并通过 LangChain 提供的工具将聊天机器人集成到现有的通信渠道和工作流程中。\\r\\n 总结：LangChain 能高效支持语言模型执行文本总结任务，帮助大语言模型分解复杂的学术文章、成绩单，甚至提供电子邮件摘要。借助 LangChain 的抽象方法，开发者可以轻松实现这些功能，并将其集成到各种应用程序中。\\r\\n 问题解答：通过实用特定文档或专业知识库（如 Wolfram、arXiv 或 PubMed），大语言模型可以从存储中检索相关信息，并提供精准的答案。如果经过微调或适当提示，部分大语言模型 无需外部信息也可以回答许多问题。\\r\\n 数据增强：大语言模型可用于生成用于机器学习的合成数据。例如，大语言模型经过训练，可用于生成与训练数据集中的数据点非常相似的额外数据样本。\\r\\n 虚拟代理：LangChain 的代理模块与正确的工作流程集成，可以使用大语言模型自主确定后续步骤，并使用机器人流程自动化 (RPA) 采取行动。\\r\\n\\r\\n电子书\\r\\n\\r\\n如何选择合适的 AI 基础模型 [...] 我的 IBM\\r\\n\\r\\n登录\\r\\n\\r\\n订阅\\r\\n\\r\\n# 什么是 LangChain？\\r\\n\\r\\n## 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源编排框架，用于使用大语言模型 (LLM) 开发应用程序。LangChain 的工具和 API 用于基于 Python 和 Javascript 的库，可以简化构建聊天机器人和虚拟代理等大语言模型驱动型应用程序的过程。\\r\\n\\r\\nLangChain 几乎可以作为所有大语言模型的通用接口，为构建大语言模型应用程序并将其与外部数据源和软件工作流程集成提供集中式开发环境。LangChain 基于模块的方法可支持开发人员和数据科学家动态比较不同的提示，甚至比较不同的基础模型，而无需重写代码。这种模块化环境还可支持程序使用多个大语言模型：例如，应用程序使用一个大语言模型解释用户查询，并使用另一个 大语言模型编写响应。 [...] 尽管大语言模型拥有强大的功能和广泛的用途，但它们也存在严重的局限性：即缺乏最新信息、缺乏特定领域的专业知识以及数学方面的普遍难点。\\r\\n\\r\\nLangChain 工具是一组功能，可支持 LangChain 代理与现实世界的信息进行交互，以扩展或改进可以提供的服务。著名的 LangChain 工具示例包括：\\r\\n\\r\\n Wolfram Alpha：提供强大的计算和数据可视化功能，实现复杂的数学功能。\\r\\n Google 搜索：提供 Google 搜索访问权限，为应用程序和代理提供实时信息。\\r\\n OpenWeatherMap：获取天气信息。\\r\\n 维基百科：支持对维基百科文章信息进行高效访问。\\r\\n\\r\\nAI 学院\\r\\n\\r\\n### 为什么说基础模型是 AI 的范式转变\\r\\n\\r\\n了解灵活、可重复使用的一类全新 AI 模型，这些模型可以带来新收入、降低成本并提高工作效率。还可以参阅我们的指南手册，深入了解这些模型。\\r\\n\\r\\n转到视频集\\r\\n\\r\\n## LangSmith\\r\\n\\r\\nLangSmith 于 2023 年秋季发布，旨在弥合让 LangChain 脱颖而出的原型设计功能与构建生产质量大语言模型应用程序之间的差距。', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_4.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_4.txt', 'file_name': 'document_4.txt', 'file_type': 'text/plain', 'file_size': 3600, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='# 什么是 LangChain？\\r\\n\\r\\nLangChain 是一个开源编排框架，可简化使用大语言模型 (LLM) 构建应用的过程。它提供用于将 LLM 连接到各种数据源的各种工具和组件，从而创建复杂的多步工作流。\\r\\n\\r\\nLangChain 以 Python 和 JavaScript 库的形式提供，可通过将 LLM 连接到外部数据和计算，帮助开发者增强 LLM 的功能，使其不仅能生成文本，还能执行其他任务。这有助于促进高级 AI 应用的开发，例如智能聊天机器人、复杂问答系统和自动化数据分析工具。\\r\\n\\r\\n视频：使用 LangChain 在 Vertex AI 上构建依托 AI 技术的应用\\r\\n\\r\\n# LangChain 和 AI\\r\\n\\r\\nLangChain 为开发者提供了许多潜在优势，尤其是在涉及 LLM 的应用中。其模块化设计可提高代码可重用性并缩短开发时间，从而实现快速原型设计和迭代。分布式架构可以高效处理大量语言数据，确保可伸缩性和高可用性。\\r\\n\\r\\n此外，LangChain 还提供了一致的接口来与 LLM 交互，从而抽象掉 API 管理的复杂性。这一简化的界面使开发者能够专注于构建应用，而不必担心基础设施问题。 [...] LangChain 具有灵活性和模块化特性，因此适合构建各种领域中依托 LLM 的多种应用。一些常见的应用和示例包括：\\r\\n\\r\\n### 聊天机器人和对话代理\\r\\n\\r\\n聊天机器人和对话代理\\r\\n\\r\\n构建复杂的聊天机器人，将 LLM 与记忆和外部知识集成，使其能够保持上下文、回答问题并进行自然语言对话。\\r\\n\\r\\n### 问答系统\\r\\n\\r\\n问答系统\\r\\n\\r\\n创建能够从特定文档或知识库中检索信息并根据该上下文提供准确答案的系统。\\r\\n\\r\\n### 文档总结\\r\\n\\r\\n文档总结\\r\\n\\r\\n开发能够自动生成长文本（如文章、报告或电子邮件）简洁摘要的工具。\\r\\n\\r\\n### 数据分析和提取\\r\\n\\r\\n数据分析和提取\\r\\n\\r\\n构建能够与结构化或非结构化数据源交互的应用，以根据自然语言查询检索、分析和总结信息。\\r\\n\\r\\n### 代码理解和辅助\\r\\n\\r\\n代码理解和辅助\\r\\n\\r\\n支持开发可帮助开发者理解代码、生成代码段或协助调试的工具。\\r\\n\\r\\n### 检索增强生成 (RAG)\\r\\n\\r\\n检索增强生成 (RAG)\\r\\n\\r\\n实现可以提取相关外部数据的系统，以增强 LLM 可用的信息，从而生成更准确、更具时效性的回答。\\r\\n\\r\\n### 利用 Google Cloud 解决业务难题\\r\\n\\r\\n## 相关产品和服务 [...] ## LangChain 如何运作？\\r\\n\\r\\nLangChain 的工作原理是将不同的组件“链接”在一起，为依托 LLM 的应用创建连贯的工作流。这种模块化方法将基于语言的复杂 AI 系统分解为可重复使用的各个部分。当用户提交查询时，LangChain 可以通过一系列步骤处理此输入。\\r\\n\\r\\n例如，典型的工作流可能涉及：\\r\\n\\r\\n通过这种链接方法，开发者可以定义应用处理用户的请求并创建回答所采取的一系列操作。LangChain 将这些步骤简化为组件，因此可以更容易地构建需要与 LLM 或外部资源进行多次交互的应用。该框架还提供了使用不同 LLM 的方法，让开发者可以自由选择最适合其特定应用的模型。\\r\\n\\r\\n详细了解如何将 LangChain 与 Vertex AI 搭配使用。\\r\\n\\r\\n## LangChain 的主要功能\\r\\n\\r\\nLangChain 提供了一系列功能，旨在促进开发依托 LLM 的应用。这些功能围绕着一个核心概念，那就是帮助管理与模型的互动、连接到数据以及编排复杂的行为。\\r\\n\\r\\n### 数据连接和检索\\r\\n\\r\\n### 链\\r\\n\\r\\n### 代理\\r\\n\\r\\n### 内存\\r\\n\\r\\n### LangChain 应用和示例', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_5.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_5.txt', 'file_name': 'document_5.txt', 'file_type': 'text/plain', 'file_size': 3502, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='1.   LLM 和提示：LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外，它还包括一些用于处理 LLM 的便捷实用程序。\\r\\n2.   链(Chain)：这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口，与各种工具集成，为流行应用提供端到端的链。\\r\\n3.   数据增强生成：LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如，它可以帮助总结长文本或使用特定数据源回答问题。\\r\\n4.   Agents：Agents 让 LLM 做出有关行动的决定，采取这些行动，检查结果，并继续前进直到工作完成。LangChain 提供了代理的标准接口，多种代理可供选择，以及端到端的代理示例。\\r\\n5.   内存：LangChain 有一个标准的内存接口，有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。\\r\\n6.   评估：很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。\\r\\n\\r\\n使用示例 [...] Index 是一种组织文档的方式，使语言模型更容易与它们交互。检索器是用于获取相关文档并将它们与语言模型组合的接口。LangChain 提供了用于处理不同类型的索引和检索器的工具和功能，例如矢量数据库和文本拆分器。\\r\\n\\r\\n### 6. Chat Message History\\r\\n\\r\\nLangChain 主要通过聊天界面与语言模型进行交互。ChatMessageHistory 类负责记住所有以前的聊天交互数据，然后可以将这些交互数据传递回模型、汇总或以其他方式组合。这有助于维护上下文并提高模型对对话的理解。\\r\\n\\r\\n### 7. Agents and Toolkits\\r\\n\\r\\nAgent 是在 LangChain 中推动决策制定的实体。他们可以访问一套工具，并可以根据用户输入决定调用哪个工具。Tookits 是一组工具，当它们一起使用时，可以完成特定的任务。代理执行器负责使用适当的工具运行代理。\\r\\n\\r\\n通过理解和利用这些核心概念，您可以利用 LangChain 的强大功能来构建适应性强、高效且能够处理复杂用例的高级语言模型应用程序。\\r\\n\\r\\nWhat is a LangChain Agent? [...] 在此示例中，我们使用 a`ConversationChain`来维护跨与 AI 的多次交互的对话上下文。\\r\\n\\r\\n就是这样！现在您已经对如何使用 LangChain 构建端到端的语言模型应用有了深入的了解。通过遵循这些示例，您可以使用 LLM、聊天模型、代理、链和内存功能开发强大的语言模型应用程序。\\r\\n\\r\\n结论\\r\\n--\\r\\n\\r\\n总之，LangChain 是一个强大的框架，它通过提供模块化和灵活的方法简化了构建高级语言模型应用程序的过程。通过了解组件、链、提示模板、输出解析器、索引、检索器、聊天消息历史记录和代理等核心概念，您可以创建适合您特定需求的自定义解决方案。LangChain 的适应性和易用性使其成为开发人员的宝贵工具，使他们能够释放语言模型的全部潜力，并在广泛的用例中创建智能的、上下文感知的应用程序。\\r\\n\\r\\n> 原文链接\\r\\n\\r\\n发布于 2023-04-09 07:20・上海\\r\\n\\r\\nLLM\\r\\n\\r\\nLangChain\\r\\n\\r\\nAI\\r\\n\\r\\n\\u200b赞同 685\\u200b\\u200b52 条评论\\r\\n\\r\\n\\u200b分享\\r\\n\\r\\n\\u200b喜欢\\u200b收藏\\u200b申请转载\\r\\n\\r\\n\\u200b\\r\\n\\r\\n写下你的评论...\\r\\n\\r\\n52 条评论\\r\\n\\r\\n默认\\r\\n\\r\\n最新\\r\\n\\r\\nImage 4: 兔兔\\r\\n\\r\\n庞胜轩\\r\\n\\r\\n实际上就几步', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_6.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_6.txt', 'file_name': 'document_6.txt', 'file_type': 'text/plain', 'file_size': 3563, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='LangChain 是開放原始碼的架構，可根據大型語言模型 (LLM) 打造應用程式。LLM 是針對大量資料預先訓練的大型深度學習模型，可以對使用者查詢生成回應，例如回答問題或從文本提示中建立影像。LangChain 提供工具和抽象化，藉以改善模型產生之資訊的客製化程度、準確度和關聯性。例如，開發人員可使用 LangChain 元件建立新提示鏈，或客製化現有的範本。LangChain 還包括其他元件，讓 LLM 無須重新訓練即可取得新資料。\\r\\n\\r\\n請參閱大型語言模型 (LLM) 的相關資訊\\r\\n\\r\\n## LangChain 為何重要？\\r\\n\\r\\nLLM 在於一般情境中回應提示方面十分出色，但在從未受訓練的特定領域中卻難以運作。提示詞是人員用來尋求 LLM 之回應的查詢。例如，LLM 可藉由提供估算來提供有關電腦價格的解答。但是，其無法列出您公司銷售之特定電腦型號的價格。\\r\\n\\r\\n若要執行此點，機器學習工程師必須將 LLM 與組織的內部資料來源整合，並採用提示詞工程，此為資料科學家將輸入精簡為具有特定結構和情境的生成式模型中的實務操作。 [...] LangChain 為 AI 開發人員提供工具，用以連接語言模型與外部資料來源。其為開放原始碼，並由活躍的社群提供支援。各機構可免費使用 LangChain，並從其他專精該架構的開發人員取得支援。\\r\\n\\r\\n## LangChain 如何運作？\\r\\n\\r\\n開發人員可以使用 LangChain，藉由指定會產生所需結果的步驟，靈活地採用適合特定業務環境的語言模型。\\r\\n\\r\\n### 鏈\\r\\n\\r\\n鏈是在 LangChain 中包含各種 AI 元件的基本原則，以提供情境感知回應。鏈是從使用者查詢到模型輸出的一系列自動化行動。例如，開發人員可將鏈用於：\\r\\n\\r\\n 連線至不同的資料來源。\\r\\n 產生獨特內容。\\r\\n 翻譯多種語言。\\r\\n 回答使用者查詢。\\r\\n\\r\\n### 連結\\r\\n\\r\\n鏈由連結組成。開發人員執行之串聯在一起以形成鏈接序列的每個動作都稱為鏈。開發人員可以使用連結將複雜的任務分為多個較小任務。連結的範例包括：\\r\\n\\r\\n 格式化使用者輸入。\\r\\n 將查詢傳送至 LLM。\\r\\n 從雲端儲存中擷取資料。\\r\\n 從一種語言翻譯至另一種語言。 [...] LangChain 會簡化開發此類資料回應應用程式的中繼步驟，使提示詞工程更有效率。其旨在更輕鬆地開發由語言模型驅動的多種應用程式，包括聊天機器人、回答問題、產生內容、摘要器等。\\r\\n\\r\\n以下各節會描述 LangChain 的優勢。\\r\\n\\r\\n### 重新使用語言模型\\r\\n\\r\\n組織可以使用 LangChain 來重新使用 LLM，以適用於網域特定的應用程式，而無需重新訓練或微調。開發團隊可參考專有資訊來建立複雜應用程式，以擴增模型回應。例如，您可使用 LangChain 來建置應用程式，從已儲存的內部文件讀取資料，並將其彙總為對話式回應。您可建立檢索增強生成 (RAG) 工作流程，在提示期間將新資訊引入語言模型。執行如 RAG 之類的情境感知工作流程，可減少模型幻覺並提高回應準確度。\\r\\n\\r\\n### 簡化 AI 開發\\r\\n\\r\\nLangChain 會藉由將資料來源整合和提示詞完善的複雜性虛擬化，簡化人工智慧 (AI) 開發。開發人員可自訂序列，以快速建置複雜應用程式。軟體團隊無需對商業邏輯進行程式設計，而是可修改 LangChain 提供的範本和程式庫，以縮短開發時間。\\r\\n\\r\\n### 開發人員支援', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_7.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_7.txt', 'file_name': 'document_7.txt', 'file_type': 'text/plain', 'file_size': 3034, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='简单地说，LangChain 是一个标准化接口，旨在简化构建 AI 应用的过程。它提供了一系列工具，可帮助您连接不同的组件，从而构建出复杂的工作流。这些工具包括 \\r\\nLLM\\r\\n 以及多种类型的数据源。当用户与应用进行交互时，LangChain 会使用其与 LLM 的连接来处理请求并生成适当的回应。此外，它还能利用文档或数据库等外部来源中的信息和数据，以提供更加精确、更贴合上下文的答案。\\r\\n\\r\\n例如，当用户提出问题时，LangChain 会利用 LLM 来理解问题并构思回答。同时，它还会整合一个或多个外部数据源中的信息，以丰富和完善其回答。这样，您的应用程序将变得更加智能，能够处理复杂且专业的查询。\\r\\n\\r\\n从本质上讲，您通过为 LLM 提供与希望它解决的问题更加相关的数据，从而增强了它的能力。\\r\\n\\r\\nLangChain 既可作为 Python 包也可作为 TypeScript 包使用，并具备以下几项令人瞩目的功能： [...] 模型交互：\\r\\n  LangChain 支持与任意语言模型进行交互，有效管理输入，并从输出中提取所需信息。\\r\\n 高效集成：\\r\\n  LangChain 能够与 OpenAI 和 Hugging Face 等热门 AI 平台实现高效集成。\\r\\n 灵活性和定制化：\\r\\n  LangChain 提供了高度的灵活性和丰富的定制选项，结合强大的组件，能够跨不同行业构建多种应用程序。\\r\\n 核心组件：\\r\\n  这个框架的核心包括：LangChain 库、LangChain 模板、LangServe 和 LangSmith，能够极大简化整个应用程序的生命周期。\\r\\n 标准化接口：\\r\\n  LangChain 提供了标准化的接口、提示管理和内存功能，使语言模型能够轻松与数据源进行交互。\\r\\n\\r\\n这些功能的结合赋予了 LangChain 极高的灵活性、快速响应能力、可扩展性以及易用性，对于任何希望涉足 AI 领域的开发人员而言，这无疑是一个令人振奋的好消息。\\r\\n\\r\\n## LangChain 的工作原理 [...] LangChain 是一个与 LLM 集成的模块化框架。它是一个标准化的接口，隐藏了与不同 LLM API 协作的复杂性和难度，无论您想集成 GPT-4、LLaMA 还是其他任何 LLM，都可以通过相同的过程轻松实现。此外，LangChain 还具备动态 LLM 选择功能，这意味着开发人员可以根据使用 LangChain 执行的具体任务，选择最合适的 LLM。\\r\\n\\r\\n同时，模块化设计还极大地促进了输入数据的处理与转换为可执行输出的过程。它能够处理多种数据类型，涵盖文本、代码以及多媒体格式，并提供预处理、清理和规范化数据的工具。这些步骤旨在确保数据能够被 LLM 有效使用，可能包括词汇切分、数据规范化以及语言识别等处理环节。\\r\\n\\r\\n此外，LangChain 还能处理 LLM 的输出，将其转换为符合应用或特定任务需求的格式。这包括文本格式化、生成代码片段以及提供复杂数据的摘要等。\\r\\n\\r\\n## LangChain 的核心概念', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_8.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_8.txt', 'file_name': 'document_8.txt', 'file_type': 'text/plain', 'file_size': 3308, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='## 大白话讲清楚：什么是 Langchain 及其核心概念\\r\\n\\r\\n# 大白话讲清楚：什么是 Langchain 及其核心概念\\r\\n\\r\\n作者头像\\r\\n\\r\\n在AI和机器学习领域，每天都有新技术和框架涌现。今天，我们来聊聊最近引起广泛关注的一个框架 —— Langchain。\\r\\n\\r\\n那么，Langchain到底是什么，它为什么这么受欢迎，以及它是如何工作的呢？\\r\\n\\r\\n别担心，我会用大白话帮你一步步弄明白！\\r\\n\\r\\n### 1、Langchain 简介\\r\\n\\r\\n想象一下，如果你能让聊天机器人不仅仅回答通用问题，还能从你自己的数据库或文件中提取信息，并根据这些信息执行具体操作，比如发邮件，那会是什么情况？Langchain 正是为了实现这一目标而诞生的。\\r\\n\\r\\nLangchain 是一个开源框架，它允许开发人员将像 GPT-4 这样的大型语言模型与外部的计算和数据源结合起来。目前，它提供了 Python 和 JavaScript（确切地说是 TypeScript）的软件包。\\r\\n\\r\\n上图展示了Langchain的工作原理，这是一个用于提升大型语言模型（LLMs）功能的框架。\\r\\n\\r\\n它通过三个核心组件实现增强： [...] Langchain 的这种结构设计使LLMs不仅能够处理文本，还能够在更广泛的应用环境中进行操作和响应，大大扩展了它们的应用范围和有效性。\\r\\n\\r\\n如果上面还不够大白话，我的理解 LangChain 就等价于数据库领域的 JDBC。\\r\\n\\r\\nLangChain 和 JDBC 确实有一些相似之处，特别是它们都作为连接和集成不同系统的桥梁。\\r\\n\\r\\n它们都扮演了一种中介的角色，允许开发者利用特定技术（AI 或数据库）与其他系统或应用进行交互。\\r\\n\\r\\n### 2、为什么要用 Langchain？\\r\\n\\r\\n数据连接：Langchain 允许你将大型语言模型连接到你自己的数据源，比如数据库、PDF文件或其他文档。这意味着你可以使模型从你的私有数据中提取信息。\\r\\n\\r\\n行动执行：不仅可以提取信息，Langchain 还可以帮助你根据这些信息执行特定操作，如发送邮件。无需硬编码：它提供了灵活的方式来动态生成查询，避免了硬编码的需求。\\r\\n\\r\\n### 3、Langchain 核心概念\\r\\n\\r\\nLangchain 由几个核心概念组成： [...] 数据分析和数据科学：连接到公司的客户数据或市场数据，极大地促进数据分析的进展。\\r\\n\\r\\n总之，Langchain 打开了一个充满可能性的新世界，让AI技术更加贴近我们的实际需求和数据，使得机器学习应用的发展更加多样化和个性化。\\r\\n\\r\\n希望这篇文章能帮你对 Langchain 有了更清晰的认识！\\r\\n\\r\\n下一篇有代码实战，你不妨也过一下哈。欢迎留言交流......\\r\\n\\r\\n### 参考\\r\\n\\r\\n1.\\r\\n\\r\\n2.\\r\\n\\r\\n本文分享自 铭毅天下Elasticsearch 微信公众号，前往查看\\r\\n\\r\\n如有侵权，请联系 cloudcommunity@tencent.com 删除。\\r\\n\\r\\n本文参与 腾讯云自媒体同步曝光计划  ，欢迎热爱写作的你一起参与！\\r\\n\\r\\n### 社区\\r\\n\\r\\n### 活动\\r\\n\\r\\n### 圈层\\r\\n\\r\\n### 关于\\r\\n\\r\\n### 腾讯云开发者\\r\\n\\r\\n扫码关注腾讯云开发者\\r\\n\\r\\n扫码关注腾讯云开发者\\r\\n\\r\\n领取腾讯云代金券\\r\\n\\r\\n### 热门产品\\r\\n\\r\\n### 热门推荐\\r\\n\\r\\n### 更多推荐\\r\\n\\r\\nCopyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}'),\n",
       " Document(id_='D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_9.txt', embedding=None, metadata={'file_path': 'D:\\\\pythonProject17\\\\huggface官方文档知识库\\\\extracted_documents\\\\document_9.txt', 'file_name': 'document_9.txt', 'file_type': 'text/plain', 'file_size': 2705, 'creation_date': '2025-09-16', 'last_modified_date': '2025-09-16'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\\n', text_resource=MediaResource(embeddings=None, data=None, text='在首篇教程中，我们将先暂不涉及具体的代码开发与功能实现，而先总体上回答两个方面的问题：\\r\\n\\r\\n   大语言模型、提示语、AI应用分别是什么？\\r\\n   LangChain 是什么？为什么需要使用它？\\r\\n\\r\\n如果你已经很熟悉相关的内容，而希望立刻探索 LangChain 框架的使用，你可以直接进入下一篇教程：LangChain 快速启动：安装与使用。\\r\\n\\r\\nAI 应用与调用链\\r\\n\\r\\n在本系列教程中，AI 应用通常能协助用户利用模型完成特定的生成型任务，比如文档问答、文章修改、生成代码等。其核心业务逻辑是包括一次或多次调用大语言模型的工作流（Workflow）。\\r\\n\\r\\n在 LangChain 中，这个工作流被称作 Chain（预设的工作流） 或 Agent（大语言模型参与执行步骤与工具的选择）。在这里简化起见，我们将 AI 应用的业务逻辑统称为“调用链”，即它包括了 Chain 与 Agent。\\r\\n\\r\\n请注意，与之前主要进行数据预测的判别型 AI 模型及其应用不同，生成式 AI 应用的 工作流的最终目标通常是生成新的内容。 [...] 至此，我们从五个方面完成一个简单的 AI 大语言模型和 AI应用的简介。相信你对 AI 大模型、AI 应用已经有了必要的认识。\\r\\n\\r\\n接下来，我们将开始介绍 LangChain 的基本原理，并探讨一个重要的问题：我们为什么需要使用它？\\r\\n\\r\\n2. LangChain 是什么？为什么需要它？ \\u200b\\r\\n\\r\\n简言之，LangChain 是一个 AI 应用开发框架。它同时提供 Python 和 Javascript 版本的开源库，让开发者能够：\\r\\n\\r\\n   方便地连接多种 AI 大语言模型，\\r\\n   组织自己的提示语模板，\\r\\n   连接其他组件如加载文档或搜索、连接向量库\\r\\n   最终编排形成自己的 AI 应用的业务逻辑。\\r\\n\\r\\n### 2.1 LangChain 的整体架构 \\u200b\\r\\n\\r\\n在2023年生成式 AI 的快速发展中，LangChain 也迅速扩张。在2024年初，它的整体架构如下图所示，其中深色部分是狭义的 LangChain 开源库。它现在包括三大部分： [...] 3. 小结 \\u200b\\r\\n\\r\\n总而言之，当你关注 AI 应用开发时，LangChain 既是一个强大的 AI 应用快速搭建框架，又是一个高质量的的学习资源。AI 应用开发者持续跟踪它总能有所收获。\\r\\n\\r\\n  \\r\\n\\r\\n参考链接：\\r\\n\\r\\nLangChain: \\r\\n\\r\\nLangChain Python docs: \\r\\n\\r\\nLangChain.js: \\r\\n\\r\\nLangChain Github: \\r\\n\\r\\nLangChain Cookbook: \\r\\n\\r\\n附录：LangChain 于2024.2展示于其首页的产品架构\\r\\n\\r\\nImage 10\\r\\n\\r\\n最新更新: 11/26/24\\r\\n\\r\\nPager\\r\\n\\r\\n上一页 教程导览\\r\\n\\r\\n下一页 2. 快速启动：安装与使用\\r\\n\\r\\nAlang.AI - Make Great AI Applications\\r\\n\\r\\nCopyright © 2025', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\\n\\n{content}')]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 39
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-09-16T17:10:20.148948Z",
     "start_time": "2025-09-16T17:10:20.129546Z"
    }
   },
   "cell_type": "code",
   "source": [
    "def generate_prompt(nodes, query):\n",
    "    context_str = \"\\n\\n\".join(\n",
    "        f\"标题: (node.metadata.get('title', ''))\\n摘要: {node.metadata.get('summary', '')}\\n内容: {node.get_content()}\"\n",
    "        for node in nodes\n",
    "    )\n",
    "    prompt = f\"\"\"已知信息如下：\n",
    "---------------------\n",
    "{context_str}\n",
    "---------------------\n",
    "请根据上述内容回答问题：{query}\n",
    "答案：\"\"\"\n",
    "    return prompt\n",
    "\n",
    "# # 假设retrieved_nodes为检索到的节点，llm为你的大模型实例\n",
    "# prompt = generate_prompt(retrieved_nodes, \"你的问题\")\n",
    "# response = llm.complete(prompt)\n",
    "# print(response)\n"
   ],
   "id": "52540dda5348862c",
   "outputs": [],
   "execution_count": 34
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "75f22ab34c308ad6"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python (LlamaIndex Project)",
   "language": "python",
   "name": "llamaindex"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
